[jQuery-es] wrap para los x primeros children de un div y otrowrap para el resto

Choan Gálvez choan.galvez en gmail.com
Lun Abr 2 02:20:19 PDT 2007


Helou again. Voy con otra pista...

On 31/03/2007, at 21:03, José M. Belmonte wrote:

> Hey Choan, gracias por responder..
>
>> tengo una estrucura normal tal que:
>>
>> <div id="foo">
>>     <h2>
>>     <p>
>>     <p>
>>     <h3>
>>     <p>
>>     <h3>
>>     <h4>
>>     <ul>
>>     <p>
>> </div>
>>
>> necesito coger los x primeros "children" (x y lo he calculado) y
>> hacerles un
>> wrap para meternos dentro de un <div id="izquierda"> y coger el
>> resto y
>> meterlos dentro de un <div id="derecha"> para que la estructura
>> quede asi:
>>
>> <div id="foo">
>>     <div id="izquierda">
>>         <h2>
>>         <p>
>>         <p>
>>         <h3>
>>         <p>
>>     </div>
>>     <div id="derecha">
>>         <h3>....
>>     </div>
>> </div>
>>
>
>> El caso es que `wrap` envolverá cada uno de los elementos que tengas
>> seleccionados, así que yo tiraría por `append` o `appendTo`. Algo  
>> como:
>
>> var iz = $("<div id='izquierda'/>");
>> $(elselector que toque).appendTo(iz);
>> iz,appendTo("#foo");
>
> a lo mejor no lo he entendido bien, pero esto que me has dicho lo  
> que hace
> es esto:
>
> <div id="foo">
>     <div id="izquierda">       <h2> </div>
>     <div id="izquierda">       <p> </div>
>     <div id="izquierda">       <p> </div>
>     <div id="izquierda">       <h3> </div>
>     <div id="izquierda">       <p> </div>
> ..
>
> el problema es que no se como coger h2, p, p... los que sean  
> mediante un
> indice x y decirle ponlos en <div id=izquierda></div>
>
> es decir, como hacer ese:
>> $(elselector que toque).appendTo(iz);
> pero con todos los selectores que toquen... a ver si me aclaro, lo  
> que no se
> es como coger y decir:
>
> $("#foo").children()[0] y entonces append() a este todos los que  
> tengan el
> index-1
> (porque eso de children()[0] no funciona, supongo que evidentemente!)

A ver qué tal esto:

	var c = $("#foo").children();
	$("<div id='izda'></div>").appendTo("#foo");
	$("<div id='dcha'></div>").appendTo("#foo");
	var x = [Este valor viene de algún sitio];
	c.lt(x + 1).appendTo("#izda");
	c.gt(x).appendTo("#dcha");

Un saludo.
-- 
Choan Gálvez
<choan.galvez en gmail.com>
<http://choangalvez.nom.es/>





Más información sobre la lista de distribución jquery-es