如何将Jquery响应(带有脚本标记的HTML页面)加载到DOM中

test1.html文件:

     function loadfn(){ $.get('test.html',function(data){ alert($(data).text()); //$('body div#returnData').html(data); $.each(data, function(i, node) { alert(i); if (node.tagName == "SCRIPT") { eval(node.innerHTML); } else { $(node).appendTo($('#returnData')); } }); }); test1(); test2(); }    

test.html:

       function test1(){ alert('test1 function'); }   function test2(){ alert('test2 function'); }   
Text field :

实际上我要求我必须将test.html页面加载到test1.html中,然后运行该页面中的脚本函数。

上面的代码片段不足以满足要求。 请在代码段中告诉我我的错误。

你需要做这样的事情,以便它加载脚本元素,所以我的建议是当你得到响应替换script字符串与scri" + "pt

 var code = " 

您无需将其“加载”到DOM中。 对于脚本标签,你可以做..

 eval(""); 

更新:

如果结果包含HTML和SCRIPT节点,请执行以下操作。

 $.each(nodes, function(i, node) { //result might contain muliple HTML/Script nodes if (node.tagName == "SCRIPT") { eval(node.innerHTML); //Appending to DOM also executes the script. So we do eval() instead, which does the equivalent. } else { $(node).appendTo($('#returnData')); //And append your HTML nodes to the desired target div } });