我使用以下命令快速为脚本创建了此函数:
$.fn.liCount = function(){
var i=0;
$(this).children().each(function(){
i++;
});
return Number(i);
}
问题是IE返回0,有谁知道为什么?
alert( $("ul").liCount() );
编辑:
<div id="prev-quotes">
<ul id="quote-list">
<li id="quote_content_wrapper" >
<ul>
<li class="quote_li">
<span class="service_quote"><a href="#">Web Design Services</a></span>
<br>
<span class="cost_quote"><strong>£192</strong> - <a id="7" href="#">delete</a> | <a id="7" href="#">view</a></span>
</li>
<li class="quote_li">
<span class="service_quote"><a href="#">Web Design Services</a></span>
<br>
<span class="cost_quote"><strong>£192</strong> - <a id="7" href="#">delete</a> | <a id="7" href="#">view</a></span>
</li>
<li class="quote_li">
<span class="service_quote"><a href="#">Web Design Services</a></span>
<br>
<span class="cost_quote"><strong>£192</strong> - <a id="7" href="#">delete</a> | <a id="7" href="#">view</a></span>
</li>
</ul>
</li>
<li>
<a id="first-quote" href="#">Previous Quotes</a>
<img height="16" width="16" id="warning" src="images/for_web/check_mark.png">
</li>
</ul>
</div>
答案 0 :(得分:1)
您只需使用
即可$("ul > li").length;
参见 Child Selector (“parent > child”)
如果您想获得身份li
ul
内quote-list
的号码,可以使用
$("#quote-list > li").length;
如果你想获得带有类名quote_li的li的数量,你可以使用
$("#quote-list > li > ul > li.quote_li").length;
答案 1 :(得分:0)
当您确定return Number(i);
是一个数字时,无需使用i
。
你根本不需要计数器var - jQuery中有.length
。
为什么不直接使用以下内容:
$.fn.liCount = function() {
return $(this).children('li').length;
};
它更短,更快,更具可读性,it works in all browsers。
然而,为此编写'插件'似乎有点冗长/不必要。你可以使用类似的东西:
$('ul > li').length;
答案 2 :(得分:0)
在IE 7和8中,您需要识别子标记
$.fn.liCount = function(){
var i=0;
$(this).children("li").each(function(){
i++;
});
return Number(i);
}
会奏效。当然这限制了方法的使用,除非你传递你希望计算的元素......
$.fn.liCount = function(elem){
var i=0;
$(this).children(elem).each(function(){
i++;
});
return Number(i);
}
然后致电
alert($(“ul”)。liCount(“li”));