Nếu ul
có nhiều hơn một li
-kết thúc bên trong nó, điều gì đó sẽ xảy ra, nếu không thì không!jquery đếm các yếu tố li bên trong ul -> chiều dài?
Tôi đang làm gì sai?
if ($('#menu ul').length > 1) {
Nếu ul
có nhiều hơn một li
-kết thúc bên trong nó, điều gì đó sẽ xảy ra, nếu không thì không!jquery đếm các yếu tố li bên trong ul -> chiều dài?
Tôi đang làm gì sai?
if ($('#menu ul').length > 1) {
Bạn có để đếm các yếu tố li không phải là yếu tố ul:
if ($('#menu ul li').length > 1) {
Nếu bạn cần mọi phần tử UL có chứa ít nhất hai yếu tố LI, sử dụng chức năng lọc:
$('#menu ul').filter(function(){ return $(this).children("li").length > 1 })
Bạn cũng có thể sử dụng điều đó trong điều kiện của mình:
if ($('#menu ul').filter(function(){ return $(this).children("li").length > 1 }).length) {
alert("Size: " + $("li").size());
hoặc
alert("Size: " + $("li").length);
Bạn có thể tìm thấy một số ví dụ về các phương pháp .size() here.
Cú pháp đúng là
$('ul#menu li').length
alert("Size: " + $("li").size());
alert("Size: " + $("li").length);
Cả .size() và .length số lợi nhuận của mặt hàng. nhưng phương thức size() không được chấp nhận (JQ 1.8). .length thuộc tính có thể sử dụng thay vì kích thước().
bạn cũng có thể sử dụng
alert($("ul").children().length);
Vui lòng sử dụng .size() chức năng thay vì .length và cũng chỉ định thẻ li trong selector.
Thay đổi mã của bạn như thế nào.
if ($('#menu ul li').size() > 1) {
Sử dụng $('ul#menu').children('li').length
.size() thay vì .length cũng sẽ làm việc
** Chỉ cần để tham khảo thêm ... ** Lệnh '.size()' phương pháp bị phản đối như của jQuery 1.8. Sử dụng thuộc tính '.length' để thay thế. [deprecated-1.8] (http://api.jquery.com/category/deprecated/deprecated-1.8/) – gmo