2016-06-11 19 views
0

基本上我需要移動在選擇的div的所有環節的div.item內追加多個div到新的位置(使用.prev)

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

我一直打AB出與下面的腳本,但只是不能似乎打釘

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

回答

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')

0

.each函數是不必要的,因爲它會自動在元素的每個實例上執行它。

調用.prev也是不必要的,除非您試圖爲僅包含.link的元素做一個有條件的事情。

我相信這是所有你想要的:

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