Javascript 向上移动元素2的位置

Javascript 向上移动元素2的位置,javascript,jquery,html,next,Javascript,Jquery,Html,Next,我想把一个元素向上移动两个位置 我尝试了很多不同的选择,但我做不好。。。 这是我的最新代码: <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 level

我想把一个元素向上移动两个位置

我尝试了很多不同的选择,但我做不好。。。 这是我的最新代码:

<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>
根据上面的代码,我想显示前一个dt之前的.qty,因此结果应该是:

<dd class="qty"> 1x </dd>
<dt>Element 2</dt>
<dd class="price">£6.00</dd>
1x
要素2
£6.00

您可以这样做:

$('#Basket .qty').each(function() {
  var sib = $(this).prev().prev()
  sib.before($(this))
});
$('#Basket.qty')。每个(函数(){
var sib=$(this.prev().prev())
同级前($(本))
});

要素1
£32.00
1x
要素2
£6.00
1x

您可以这样做:

$('#Basket .qty').each(function() {
  var sib = $(this).prev().prev()
  sib.before($(this))
});
$('#Basket.qty')。每个(函数(){
var sib=$(this.prev().prev())
同级前($(本))
});

要素1
£32.00
1x
要素2
£6.00
1x

这将导致无效的标记,不是吗?理想情况下,
前面应该有一个
(或
),这会导致无效的标记,不是吗?理想情况下,
前面应该有一个
(或
)。虽然这是OP想要的,但它使第一个qty元素成为孤立元素,第二个qty元素成为错误dt的子元素。@SalmanA非常正确,老实说,我没有读到那部分。我将在答案中添加一条注释。虽然这符合OP的要求,但它使第一个qty元素成为孤儿,第二个qty元素成为错误dt的孩子。@SalmanA非常正确,老实说,我没有读到这一部分。关于这件事,我要在答案上加一条注释。