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

José M. Belmonte clicstudio en hotmail.com
Sab Mar 31 12:03:01 PDT 2007


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!)

Gracias!
xema 



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