我正在尝试将元素向上移动两个位置
我尝试了很多不同的选择,但是我做对了…… 这是我的最新代码:
<div id="basket">
<dl>
<dt>Element 1</dt>
<dd class="price">£32.00</dd>
<dd class="qty"> 1x </dd> //Need to move this element 2 levels up, right before dt
<dt>Element 2</dt>
<dd class="price">£6.00</dd>
<dd class="qty"> 1x </dd> //But this one as well
</dl>
</div>
$("#basket dd.qty").each(function() {
var e = $(this);
e.prevAll("dt").insertAfter(e);
});
基于上面的代码,我想在.qty之前的dt之前显示它,因此结果应该是:
<dd class="qty"> 1x </dd>
<dt>Element 2</dt>
<dd class="price">£6.00</dd>
答案 0 :(得分:2)
您可以这样做:
$('#Basket .qty').each(function() {
var sib = $(this).prev().prev()
sib.before($(this))
});
$('#Basket .qty').each(function() {
var sib = $(this).prev().prev()
sib.before($(this))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="Basket">
<dl>
<dt>Element 1</dt>
<dd class="price">£32.00</dd>
<dd class="qty"> 1x </dd>
<dt>Element 2</dt>
<dd class="price">£6.00</dd>
<dd class="qty"> 1x </dd>
</dl>
</div>
请注意,理想的用法是在<dt>
之前放置<dd>