将多个div添加到新位置(使用.prev)

时间:2016-06-11 07:22:05

标签: jquery function append each

基本上我需要在div.item

中选择div中的所有链接
<div class="item">
  <div class="inner">
    <a class="link">HELLO</a>
  </div>
</div>
<div class="item">
  <div class="inner">
    <a class="link">HELLO</a>
  </div>
</div>

我一直在玩以下剧本,但似乎无法指出它

  $( ".link" ).each(function(){
    var prevbox = $(this).prev('.item');
    $(this).appendTo(prevbox);
  });

2 个答案:

答案 0 :(得分:1)

$(".link").each(function() {
  var prevbox = $(this).closest('.item');
  $(this).appendTo(prevbox);
});

console.log($('.item')[0].outerHTML)
.inner {
  background-color: green
}
.link {
  background-color: yellow
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="item">
  <div class="inner">w
    <a class="link">HELLO</a>
  </div>
</div>
<div class="item">
  <div class="inner">e
    <a class="link">HELLO</a>
  </div>
</div>

您希望获得.closest('.item')

答案 1 :(得分:0)

.each函数是不必要的,因为它会自动在元素的每个实例上执行它。

除非您尝试仅对包含.prev的元素执行条件处理,否则调用.link也是不必要的。

我相信这就是你想要的:

$(".item").append("<div class='link'>asdf</div>");