jquery 向上移动元素2的位置

unhi4e5o  于 2023-06-05  发布在  jQuery
关注(0)|答案(1)|浏览(129)

我正试着把一个元素上移两个位置
我试过很多不同的选择,但我不能得到它的权利…这是我的最新代码:

<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>
q3aa0525

q3aa05251#

你可以这样做:

$('#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>

请注意,理想的用法是在<dd>之前设置<dt>

相关问题