2012-08-14 16 views
5

Poniższy fragment kodu nie działa.Funkcja dodawania jquery nie działa zgodnie z oczekiwaniami

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

Jest elementem div w HTML i dodaje poprawnie div. Ale kolekcja div nie jest dodawana do pustego obiektu jquery . Jakieś pomysły, co w tym złego?

+0

działa jak to [udokumentowane] (http: //api.jquery.c om/dodaj /). – alex

Odpowiedz

22

.add nie zmieni oryginalnego obiektu. Spróbuj:

empty = empty.add(divs); 
+1

+1 jedno z niewielu początkowo nieintuicyjnych dziwactw jQuery :) –

+0

+1 To. Zdobyłem mnie wiele, wiele razy. – aefxx

+1

To właśnie w [dokumentacji] (http://api.jquery.com/add/) zwraca ona nową kolekcję jQuery. – alex

0

Per Jquery doc,

Poniższa nie zbawi dodanych elementów, ponieważ metoda .add() tworzy nowy zestaw i pozostawia oryginalny zestaw w pdiv niezmienione:

var pdiv = $("p"); 
pdiv.add("div"); // WRONG, pdiv will not change 
Powiązane problemy