2010-08-23 29 views

Trả lời

167

Bạn có thể sử dụng .length, như thế này:

var count = $("ul li").length; 

.length kể có bao nhiêu phù hợp với selector tìm thấy, vì vậy đây đếm có bao nhiêu <li> dưới <ul> yếu tố mà bạn có ... nếu có tiểu trẻ em, sử dụng "ul > li" thay vì chỉ nhận được trực tiếp trẻ em. Nếu bạn có các phần tử <ul> khác trong trang của mình, chỉ cần thay đổi công cụ chọn để chỉ đối sánh với phần tử của mình, ví dụ: nếu nó có ID bạn muốn sử dụng "#myListID > li".

Trong tình huống khác mà bạn không biết loại con, bạn có thể sử dụng * (wildcard) selector, hoặc .children(), như thế này:

var count = $(".parentSelector > *").length; 

hay:

var count = $(".parentSelector").children().length; 
+1

gì nếu nó không biết rằng đứa trẻ là "li", và có thể là bất cứ điều gì? – Starx

+5

@Starx: '$ (" # parent "). Children(). Length' – alecananian

+1

@AlecAnanian, Không, tôi biết cách. Ý tôi là tôi hy vọng Nick cũng sẽ thêm nó vào câu trả lời của anh ấy. – Starx

1

Thử để sử dụng:

var count = $("ul > li").size(); 
alert(count); 
0

Điều gì sẽ xảy ra nếu bạn sử dụng tính năng này để xác định chọn hiện tại để tìm con của nó vì vậy đây giữ: <ol> sau đó là <li> s dưới làm thế nào để viết một selector var count = $(this+"> li").length; wont work ..

+0

nếu ol có một lớp bạn có thể viết '$ (" ol.class> li "). – Qwerty

4

Bạn không cần jQuery cho việc này. Bạn có thể sử dụng JavaScript của .childNodes.length.

Chỉ cần đảm bảo trừ 1 nếu bạn không muốn bao gồm nút văn bản mặc định (nút này trống theo mặc định). Vì vậy, bạn muốn sử dụng như sau:.

var count = elem.childNodes.length - 1; 
Các vấn đề liên quan