$('#content').load(href + ' #content');
是否可以只加载#content
的内容,而不是加载整个<div id="contents">
,这样我就可以阻止<div id="contents"><div id="contents"></div></div>
了?
我忘了在很多页面上放置包装器,如果有一个解决方法,这将节省我一些时间。
答案 0 :(得分:1)
我想你可以试试
$('#content').load(href + ' #content > *');
注意:如果#content
有任何文本节点作为其子节点(不是后代),那么它可能无效(文本节点可能无法复制)
演示:Fiddle
另一种解决方案是手动删除第二个包装器(如果它存在,如
)$('#content').load('ajax.html' + ' #content', function () {
if ($(this).children('#content').length) {
$(this).contents().unwrap()
}
});
演示:Fiddle
答案 1 :(得分:0)
为什么不首先将它们粘贴在其他地方然后移动到你想要的地方
$(document.createElement('div')).load(href + ' #content', function (e) {
var elms = this.firstChild.childNodes,
parent = document.getElementById('content');
while (elms.length) {
parent.appendChild(elms[0]);
}
});
答案 2 :(得分:0)
load()
方法主要用于加载远程数据..
您不能拥有两个具有相同ID的元素。
$( "#result" ).load( "page.html #desiredContent" );
答案 3 :(得分:0)
$ .load函数在请求完成时需要处理程序(http://api.jquery.com/load/)。因此,当您请求匹配的##内容&#39;来自其他页面的元素,具有完整的功能只返回内部html。类似的东西:
$('#content').load(href + ' #content',function(data){ return data.html(); });