insertBefore是复制内容

时间:2018-01-29 13:55:47

标签: javascript jquery

https://jsfiddle.net/072uwd1k/

我尝试更改要放置在文本上方的数字位置,使用insertBefore就是这样,但是它会复制它以获得div的数量。

<div class="box-wrap">
  <div class="box">
    <p class="text">ABC</p>
    <p class="num">123</p>
  </div>

  <div class="box">
    <p class="text">ABC</p>
    <p class="num">123</p>
  </div>
</div>
  

$(&#39; .num&#39)。的insertBefore(&#39;的.text&#39);

1 个答案:

答案 0 :(得分:6)

虽然您有更多课程num,但您需要使用.each().prev()来获取之前的.text元素

&#13;
&#13;
$('.num').each(function(){
  $(this).insertBefore($(this).prev('.text'));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box-wrap">
  <div class="box">
    <p class="text">ABC</p>
    <p class="num">123</p>
  </div>

  <div class="box">
    <p class="text">ABC</p>
    <p class="num">123</p>
  </div>
</div>
&#13;
&#13;
&#13;

  

所以你需要.each()来遍历.num元素。   $(this)获取空间.num元素和$(this).prev('.text')   选择之前的.text