2014-09-24 138 views
0

使用jQuery ajax,我可以在另一个页面的div中加载div。我的问题是:我可以加载一个div的内容,但不是div本身?在这种情况下,我可以加载“一些文本”和#intern而不是#extern?使用ajax加载div的内容

一个解决方案是在#extern中的每个元素上加载一个。但这是一个简化的例子,在实际情况中,有很多事情,并且使这个选项不太方便。

JQUERY AJAX:

$("#target").load("extern.html #extern"); 

的index.html:

<div id="target"></div> 

EXTERN.html:

<div id="extern"> 
    Some text 
    <div id="intern"></div> 
</div> 
+0

你说得对,'$。孩子()'和'$ .contents()'不工作。我将删除我不正确的答案。我在[jsfiddle](http://jsfiddle.net/ivan_sim/Lpdywkos/)(使用它的'echo'服务)上进一步测试了它,并设法让它的一部分工作。非封闭的文本,如“某些文本”在选择器中不起作用。 – 2014-09-27 03:16:42

回答

1

您可以结合使用jQuery.get().replaceWith(),以达到预期的效果:

$.get("extern.html").done(function(data) { 
    $("#target").replaceWith(data); 
}); 
+0

有趣的选择。这避免了div的重复,但有局限性,我必须在extern中加载所有内容 – Nrc 2014-09-24 15:27:42

0

尝试了很多事情后,我能找到答案:

$("#target").load("3-extern.html #extern" // I load the div and the content first 
,function(){ $("#intern").unwrap(); } // I eliminate the loaded div that I do not need anymore 
);