2012-08-24 31 views
6

Tôi gặp sự cố liên quan đến jQuery. Tôi cần đếm số lượng thẻ <a> trong div. Bây giờ điều này có thể dễ dàng được thực hiện bằng cách sử dụng $('.classOfDiv > a').size();. Nhưng tôi cần đếm số của một trong số ít các con của classOfDiv.Đếm các thẻ <a> bên trong div + childs

Ví dụ:

<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(); Với kết quả của 12

này có thể được thực hiện?

Cảm ơn trước!

Trả lời

11

Chỉ cần loại bỏ các > từ bộ chọn để có được alla hậu duệ của .classDiv, không chỉ những người trực tiếp:

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

Cảm ơn đã phản ứng rất nhanh chóng! :) –

2

Bộ chọn .classOfDiv > a sẽ chỉ giúp bạn có được các thẻ <a> mà là hậu duệ trực tiếp của một <div class="classOfDiv">, vì vậy, bạn cần phải thay đổi mã của mình thành:

$('.classOfDiv a').length; 

Lưu ý việc thiếu > bộ chọn con cháu trực tiếp.

+1

'size()' không được chấp nhận. Bạn nên sử dụng 'length'. – VisioN

+0

Đã chỉnh sửa. Cảm ơn! –

0

Bạn có thể làm một cái gì đó như thế này:

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

tôi đã thực hiện một fiddle here

Các vấn đề liên quan