Parece que no puedo hacer que appendTo funcione. ¿Qué hago mal?
$('div:nth-child(2n) img').appendTo(parent);marcado actual:
<div class="container"> <img src="123.jpg" /> <p>Hey</p> </div> <div class="container"> <img src="123.jpg" /> <p>Hey</p> </div>Quiero esta salida:
<div class="container"> <p>Hey</p> <img src="123.jpg" /> </div> <div class="container"> <p>Hey</p> <img src="123.jpg" /> </div>Por favor ayúdenme chicos... me estoy arrancando los pelos a cada minuto... :-S
Lo siguiente debería ser suficiente:
$("div>img").each(function(){ $(this).appendTo($(this).parent()); });Véalo funcionando aquí: http://jsfiddle.net/EtxqL/
No puede inferir el padre de cada elemento desde el parámetro 'selector' para appendTo(). La única forma de hacer lo que desea es recorrer los elementos, agregando cada uno a su padre. Consulta las APIs en el siguiente enlace.
¿Es esto lo que buscas?
$('.container > img').each(function () { $(this).parent().append(this); }); Simplemente toma el <img> dentro de cada contenedor y se mueve como el primer elemento secundario del contenedor.
Puede usar .prepend() en lugar de agregar Insertar agregar al final del padre. Pero anteponga la inserción al comienzo del padre. entonces como:
$('.container > p').each(function () { $(parent).prepend(this); });