2016-06-11 14 views
0

Grundsätzlich muss ich alle Links in einer Auswahl von divs innerhalb des div.itemAppend mehrere divs neuen Standort (mit .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> 

bewegen ive ab gespielt mit dem folgenden Skript, aber nur kann nicht scheinen, es

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

Antwort

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>

Sie Nagel wollen die .closest('.item')

0

Die .each Funktion ist nicht notwendig, weil es automatisch führt es auf jeder Instanz des Elements.

Der Aufruf von .prev ist auch nicht erforderlich, es sei denn, Sie versuchen, eine bedingte Sache nur für die Elemente durchzuführen, die eine .link enthalten.

Ich glaube, das ist alles, was Sie wollen:

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