2012-08-24 67 views
6

Tengo un problema con respecto a jQuery. Necesito contar la cantidad de etiquetas <a> dentro de un div. Ahora esto se puede hacer fácilmente usando $('.classOfDiv > a').size();. Pero necesito contar los a's dentro de un par de hijos de classOfDiv.Contar las etiquetas <a> dentro de div + childs

Ej.

<div class="classOfDiv"> 
    <div class="div1"> 
     <a href="" class="link">Link</a> 
     <a href="" class="link">Link</a> 
     <a href="" class="link">Link</a> 
    </div> 
    <div class="div2"> 
     <a href="" class="link">Link</a> 
     <a href="" class="link">Link</a> 
     <a href="" class="link">Link</a> 
    </div> 
    <div class="div3"> 
     <a href="" class="link">Link</a> 
     <a href="" class="link">Link</a> 
     <a href="" class="link">Link</a> 
    </div> 
    <div class="div4"> 
     <a href="" class="link">Link</a> 
     <a href="" class="link">Link</a> 
     <a href="" class="link">Link</a> 
    </div> 
</div> 

$('.classOfDiv > a').size(); Con el resultado de 12

se puede hacer esto?

¡Gracias de antemano!

Respuesta

11

Basta con retirar la > desde el selector con el fin de obtener alla descendientes de .classDiv, no sólo los directos:

$(".classOfDiv a").length 
+0

Gracias por la respuesta muy rápida! :) –

2

El selector .classOfDiv > a sólo va a llegar las <a> etiquetas que son descendientes directos de una <div class="classOfDiv">, por lo que tendrá que cambiar su código para:

$('.classOfDiv a').length; 

Aviso la falta de > selector descendiente directo.

+1

'size()' está en desuso. Deberías usar 'longitud'. – VisioN

+0

Editado. ¡Gracias! –

0

se podría hacer algo como esto:

$('.classOfDiv > [class ^= "div"] > a').length 

hice un violín here

Cuestiones relacionadas