我有以下模型(这是一个jsbin:http://jsbin.com/vadutezaci/1/edit?html,css,output):
<div class='jt-header'>a header 1</div>
<div class='jt-detail'>a detail 1
<div class='jt-item-price'>12.34</div>
</div>
<div class='jt-header'>another header 2<div class='jt-item-price'>34.45</div></div>
<div class='jt-detail'>another detail 2
</div>
基本上,如果jt-item-price在jt-detail内,我想附加到前面的jt-header处;这是上面的第一对。如果它已经在jt标头中,请保持不变(第二对),以使上面的内容变为:
<div class='jt-header'>a header <div class='jt-item-price'>12.34</div>
</div>
<div class='jt-detail'>a detail
</div>
<div class='jt-header'>another header<div class='jt-item-price'>34.45</div></div>
<div class='jt-detail'>another detail
</div>
我该怎么做?我会认为detach()。appendTo()但是我如何检测到jt-item-price在一个细节之内,以及如何将其告知前面的jt-header(可能会插入非jt-header元素) ?
编辑#1
一个更现实的示例似乎使用next()中断了:
<div class='jt-row'>
<div class='jt-header'>a header 1</div>
</div>
<div class='jt-row'>
<div class='jt-detail'>a detail 1
<div class='jt-item-price'>12.34</div>
</div>
</div>
<div class='jt-row'>
<div class='jt-header'>another header 2<div class='jt-item-price'>34.45</div></div>
</div>
<div class='jt-row'>
<div class='jt-detail'>another detail 2
</div>
</div>
最佳答案
jQuery append()接受一个函数,可以使用以下逻辑:
$('.jt-header').append(function(){
return $(this).next('.jt-detail').children('.jt-item-price');
});
-jsFiddle-
关于jquery - 如何将一个元素移入另一个元素中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28661854/