2012-04-10 14 views
6

Tengo un div con un id de content y quiero obtener el id del primer nivel div elementos, por ejemplo. box1, box2, box3. ¿Cómo puede hacerse esto?¿Cómo obtener solo divs de primer nivel?

<div id="content"> 
    <div id="box1" class="box1class"> 
     <div>...</div> 
    </div> 
    <div id="box2" class="box1class"> 
     <div>...</div> 
    </div> 
    <div id="box3" class="box1class"> 
     <div>...</div> 
    </div> 
</div> 
+0

posible duplicado de [Selección único elemento primer nivel, no elementos hijo con el mismo nombre del elemento] (http://stackoverflow.com/ questions/2604463/select-only-first-level-element-not-child-elements-with-the-same-element-nam) – Curt

+1

¿Por qué necesita los ID? Por favor dime que no es para que puedas decir '$ ('#' + id)' – Sorpigal

+0

@Sorpigal No me sorprendería. La cantidad de código redundante que las personas escriben con jQuery es alucinante ... –

Respuesta

6

Uso del seelctor > niño.

var ids = []; 
$("#content > div").each(function() { 
    ids.push(this.id); 
}); 

Se podría acortar este aún más mediante el uso de map():

var ids = $("#content > div").map(function() { 
    return this.id; 
}).get(); 
+0

[Caso de prueba rápida] (http://jsfiddle.net/6RB9y/) :) –

+1

Thx Rory, malentendió la pregunta :-P borró mi comentario tonto :) – Cody

1

Uso:

$("#content > div").each(function() { 
    var divId = this.id; 
}); 
+3

Esta es una respuesta engañosa. $ ("# content> div"). attr ("id") obtiene solo la primera id de div, no todos. –

+0

@Chcuk Norris: corregido – kgiannakakis

+0

¿Y qué devolverá esto? –

5
$("#content > div") 

gusta esta. Usted puede obtener gran variedad de divs como esto

var array = $("#content > div").map(function(){ 
     return this.id; 
    }).get(); 

Sede en jsFiddle http://jsfiddle.net/DsyzV/

+0

Gracias tirada :) – user1184100

Cuestiones relacionadas