2012-08-14 16 views
5

Das folgende Snippet funktioniert nicht.jquery add Funktion funktioniert nicht wie erwartet

var empty = $(); 
var divs = $("div"); 
empty.add(divs); 

Es ist ein div-Element in der HTML und es ist richtig divs hinzugefügt. Die divs-Auflistung wird jedoch nicht zum leeren jquery-Objekt hinzugefügt. Irgendwelche Ideen, was ist damit falsch?

+0

Es funktioniert wie es ist [dokumentiert] (http: //api.jquery.c om/add /). – alex

Antwort

22

.add wird das ursprüngliche Objekt nicht ändern. Versuchen:

empty = empty.add(divs); 
+1

+1 eine der wenigen anfänglich nicht intuitiven Macken von jQuery :) –

+0

+1 This. Das hat mich viele, viele Male bekommen. – aefxx

+1

Es ist richtig in der [Dokumentation] (http://api.jquery.com/add/), dass es eine neue jQuery-Sammlung zurückgibt. – alex

0

Per JQuery doc,

Im Folgenden werden die zusätzlichen Elemente nicht speichern, da die .add() Methode einen neuen Satz erzeugt und verlässt den ursprünglichen Satz in pdiv unverändert:

var pdiv = $("p"); 
pdiv.add("div"); // WRONG, pdiv will not change 
Verwandte Themen