如何使用jquery将html加载到variables中
我知道我可以在HTML中加载到一个div与:
$("#my_div").load("http://www.mypage.com");
但我想要做的是加载HTML到一个variables,如:
my_var = load("http://www.mypage.com");
任何帮助是伟大的。
我想循环一些项目,如:
HLS.functions.LoadSideModules = function() { HLS.sideModuleContent = new Object(); for(var i = 0; i < HLS.currentModuleConfig.POLICIES.POLICY.length; i++) { for(var y = 0; y < HLS.currentModuleConfig.POLICIES.POLICY[i].PAGES.PAGE.length; y++) { for(var POS in HLS.currentModuleConfig.POLICIES.POLICY[i].PAGES.PAGE[y]) { var item = HLS.currentModuleConfig.POLICIES.POLICY[i].PAGES.PAGE[y][POS]; if(!HLS.sideModuleContent[item]) { HLS.sideModuleContent[item] = j.get(HLS.config.K2GETMODULE + HLS.currentModuleConfig.POLICIES.POLICY[i].PAGES.PAGE[y][POS]); } } } } };
$.get("http://www.mypage.com", function( my_var ) { // my_var contains whatever that request returned });
在jQuery下面将启动一个ajax请求,它会触发给定的URL。 它还试图智能地猜测哪些数据将被接收(如果它是有效的html,你不需要指定)。 例如,如果您需要获取另一个数据types,则只需将它作为最后一个parameter passing
$.get("http://www.mypage.com", function( my_var ) { // my_var contains whatever that request returned }, 'html'); // or 'text', 'xml', 'more'
参考: .get()
你也可以在内存中创build一个元素并在其上使用load():
var $div = $('<div>'); $div.load('index.php #somediv', function(){ // now $(this) contains #somediv });
好处是你可以通过使用一个select器(#somediv)来指定要加载的index.php的哪一部分
虽然创build一个新的元素是一种select,你也可以克隆任何元素。 这将复制所有的旧节点的属性和值,正如它所说的,“精确的克隆”。
如果你只想复制html的特定部分,这也提供了灵活性来填充来自抓取页面的特定元素层次结构(即,包括所有的孩子)内的所有内容。
例如,如果层次结构是 –
<div id='mydiv'> <div> <span> ...</span> </div> </div> //... var oldElement = document.getElementById('mydiv'); var newElement = oldElement.cloneNode(true); /* #selector selects only that particular section & the '> *' enables to copy all of the child nodes under the parent #selector Replace URL with the required value function specification is optional... */ jQuery(newElement).load(URL+'#selector > *'[,function(response, status, xhr){}]); //...
现在你可以编程方式处理variablesnewElement(也使用native javascript,因为它是一个本地元素)。
function includeHTML_callBack(result){ var my_var = result; } function includeHTML(link, callBack) { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { callBack(this.responseText); } } xhttp.open("GET", link, true); xhttp.send(); return; } includeHTML("http://www.mypage.com", includeHTML_callBack);