2012-08-24 3 views
6

Ich habe ein Problem in Bezug auf jQuery. Ich muss die Anzahl der <a> Tags innerhalb einer div zählen. Jetzt kann dies einfach mit $('.classOfDiv > a').size(); getan werden. Aber ich muss die a in ein paar Kindern von classOfDiv zählen.Zählen Sie die <a> Tags in div + childs

Ex.

<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(); Mit dem Ergebnis von 12

Kann dies geschehen?

Vielen Dank im Voraus!

Antwort

11

einfach die > vom Selektor entfernen, um alla Nachkommen von .classDiv zu bekommen, nicht nur die Direktfluege:

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

Vielen Dank für die sehr schnelle Reaktion gemacht! :) –

2

Die .classOfDiv > a Wähler werden nur die <a> Tags erhalten, die direkten Nachkommen von a sind <div class="classOfDiv">, so dass Sie Ihren Code ändern müssen:

$('.classOfDiv a').length; 

Hinweis der Mangel an > direkter Nachfahrenwähler.

+1

'size()' ist veraltet. Sie sollten 'Länge' verwenden. – VisioN

+0

Bearbeitet. Vielen Dank! –

0

Man könnte so etwas tun:

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

ich eine Geige here