2012-06-05 21 views
33

Me preguntaba y no pude obtener la mejor documentación que indique la diferencia entre $ .add y $ .append cuando tenemos un solo elemento para agregar o anexar a un contenedor .

Gracias de antemano

+7

* Añadir: * http://api.jquery.com/add/; * Agregar: * http://api.jquery.com/append/; más: agrega elementos al conjunto de elementos coincidentes. where as Anexar: inserte contenido, especificado por el parámetro, al final de cada elemento en el conjunto de elementos coincidentes. ** ** B-) –

+2

_ "no pude obtener la mejor documentación" _ - ¿Dónde te veías? El jQuery doco lo explica con bastante claridad ... – nnnnnn

+1

Lo he buscado en Internet. y sí, la documentación de JQuery explica esto. Pero no todo el mundo no es tan técnico para entender todo lo que allí se explica. Es por eso que existen estos foros. @nnnnnn –

Respuesta

22

Dado un objeto jQuery que representa un conjunto de elementos DOM, el método .add() construye un nuevo objeto jQuery a partir de la unión de esos elementos y los que se pasan al método. Pero no inserta el elemento en el DOM, es decir, usando .add(), el elemento se agregará al DOM, pero para verlo en la página debe insertarlo en la página utilizando el método insertion/append.

+0

Gracias por la explicación. Es bastante útil. –

+1

¿Puedes aclarar más? dices "... Pero no inserta el elemento en el DOM, es decir, usando' .add() 'el elemento se agregará al DOM ..." Bueno, ¿cuál es, se inserta en el DOM o no? – chharvey

4

agregar apenas añade el elemento al objeto jQuery, no se le añade que en el DOM

Append agrega el elemento en el DOM como el niño.

28

No están relacionados en absoluto.

.add()

añadir elementos al conjunto de elementos emparejados.

e.g.

Si usted quiere hacer,

$('div').css('color':'red'); 
$('div').css('background-color':'yellow'); 
$('p').css('color':'red'); 

A continuación, se puede hacer,

$('div').css('background-color':'yellow').add('p').css('color':'red'); 

Reference

.Append()

Inserción de contenido, especifique por el parámetro, hasta el final de cada elemento en el conjunto de elementos coincidentes.

$('div').append('p'); 

añadirá seleccionado p sobre todo div seleccionada en dom.

Reference

+0

Gracias por la respuesta @Jashwant. Ahora esto está claro para mí también. después de obtener las respuestas. –

7

.add()

for example: 
<ul> 
    <li>list item 1</li> 
    <li>list item 2</li> 
    <li>list item 3</li> 
</ul> 
<p>a random paragraph</p> 

para cambiar el color de los elementos <li> Y el elemento <p> a rojo, se podría escribir:

$("li").css("background-color", "green"); 
$("p").css("background-color", "green"); 

o condensar lo anterior mediante la utilización. add()

$("li").add("p").css("background-color", "green"); 

.append()

creará un nuevo elemento para agregar al DOM y aparecerá como elemento secundario del elemento especificado existente.

<div>one</div> 
<div>two</div> 

<ol> 
    <li>item1</li> 
    <li>item2</li> 
</ol> 

$("div").append('<p>'); 

se traducirá en:

<div>one</div> 
<p></p> 
<div>two</div> 
<p></p> 

<ol> 
    <li>item1</li> 
    <p></p> 
    <li>item2</li> 
    <p></p> 
</ol> 
+0

+1 Demasiado bueno y bien construido. –

+0

¿por qué se agregará un párrafo a cada elemento de la lista? ellos no son divs. – chharvey

+0

@tismle: ¿Quisiste decir cambiar el color a 'verde'? Además, el resultado de Append() es incorrecto; al usar Append() se agrega un nodo secundario, también se colocará el elemento P dentro de cada div no después. – brooklynsweb

Cuestiones relacionadas