ron*_*nni 5 ajax jquery dom-manipulation
我正在尝试将其他页面div中的内容加载到另一个页面div中.
我得到了什么:
JQUERY:
$('#news_date-1').load('test.php .news_date-1');
Run Code Online (Sandbox Code Playgroud)
test.php的
<div class="news_date-1">20-11-2009</div>
Run Code Online (Sandbox Code Playgroud)
Destination.html
<div id="news_date-1"></div>
Run Code Online (Sandbox Code Playgroud)
我得到的结果=
<div id="news_date-1"><div class="news_date-1">20-11-2009</div></div>
Run Code Online (Sandbox Code Playgroud)
我想要的结果=
<div id="news_date-1">20-11-2009</div>
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
您可以尝试unwrap()
在回调中调用它。
$('#news_date-1').load('test.php .news_date-1', function () {
$(this) //will refer to #news_date-1
.find('.news_date-1') //find the inserted div inside
.contents() //find all its contents
.unwrap(); //unwrap the contents, thus removing the unneeded div
});
Run Code Online (Sandbox Code Playgroud)
这不是最漂亮的解决方案,因为.load()
已经将其插入到 DOM 中,然后您再次篡改 DOM,这应该被最小化。
我看到的另一种方法是使用$.get()
:
$.get('test.php', function(receivedHtml) {
//getting only the parts we need
var neededHtml = $(receivedHtml).find('.news_date-1').html();
//adding it to DOM
$('#news_date-1').append(neededHtml);
});
Run Code Online (Sandbox Code Playgroud)