2012-08-14 21 views
5

El siguiente fragmento de código no funciona.La función jquery add no funciona como se esperaba

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

Hay un elemento div en el HTML y se agrega correctamente a divs. Pero la colección de divs no se agrega al objeto vacío de jquery. ¿Alguna idea de lo que está mal con eso?

+0

funciona como se le [documentado] (http: //api.jquery.c om/add /). – alex

Respuesta

22

.add no cambiará el objeto original. Proveedores:

empty = empty.add(divs); 
+1

+1 una de las pocas peculiaridades inicialmente no intuitivas de jQuery :) –

+0

+1 Esto. Eso me ha llegado muchas, muchas veces. – aefxx

+1

Está justo en la [documentación] (http://api.jquery.com/add/) que devuelve una nueva colección jQuery. – alex

3

Usted puede hacer

var empty = $.extend($(), $('div')); 
0

por Jquery doc,

El siguiente no va a salvar los elementos añadidos, ya que el método .add() crea un nuevo conjunto y deja el conjunto original en pdiv sin cambios:

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