Jquery 计算页面上每个列表的项目数
我有一个包含多个列表的页面。每个列表都有不同数量的列表项。 我想在每三个列表项后显示一个少/多链接,如果列表中的项目少于3个,我想隐藏少/多链接 到目前为止,我得到的是:Jquery 计算页面上每个列表的项目数,jquery,Jquery,我有一个包含多个列表的页面。每个列表都有不同数量的列表项。 我想在每三个列表项后显示一个少/多链接,如果列表中的项目少于3个,我想隐藏少/多链接 到目前为止,我得到的是: var n = $('ol.checkboxes').children.length; if (n > 3) { $('ol.checkboxes') .find('li:gt(2)') .addClass('toggleli')
var n = $('ol.checkboxes').children.length;
if (n > 3) {
$('ol.checkboxes')
.find('li:gt(2)')
.addClass('toggleli')
.hide()
.end()
.append(
$('<li class="collapsed">More>> </li>').click(function(){
$(this).siblings('.toggleli').toggle();
if($(this).hasClass('expanded')){
$(this).text(metaData['MORE_TEXT']);
$(this).removeClass('expanded');
} else{
$(this).text(metaData['LESS_TEXT']);
$(this).addClass('expanded');
}
}));
}
});
var n=$('ol.checkbox').children.length;
如果(n>3){
$(“ol.复选框”)
.find('li:gt(2)'
.addClass('toggleli')
.hide()
(完)
.附加(
$(“更多> ”)。单击(函数(){
$(this.sides('.toggleli').toggle();
if($(this).hasClass('expanded')){
$(this.text(元数据['MORE_text']);
$(this.removeClass('expanded');
}否则{
$(this.text(元数据['LESS_text']);
$(this.addClass('expanded');
}
}));
}
});
不幸的是,这将统计ol.复选框中的所有列表项。。
任何帮助都将不胜感激 使用$(“ol”).find('li').length
并且不止一次使用
$("ol").each(function(){
var len = $(this).find('li').length; //if nested list then use children() instead find()
if (len>3){
//do stuff
}
});
使用$(“ol”).find('li').length
并且不止一次使用
$("ol").each(function(){
var len = $(this).find('li').length; //if nested list then use children() instead find()
if (len>3){
//do stuff
}
});
你能在发布jsbin或JSFIDLE时附带一些HTML示例吗?那么只需将“ol.checkboxes”选择器更改为适用于你的页面的选择器即可?这真的就是你要问的吗?你能在发布jsbin或JSFIDLE的同时附上一些HTML示例吗?所以只需将“ol.checkbox”选择器更改为适合你的页面的选择器即可?这就是你要问的所有问题吗?问题是,这也会计算嵌套的
列表中的
元素,这可能是不正确的。最好使用.children()
而不是原始问题中的.find()
。@Pointy thanx,是的,如果ol有嵌套列表,那么我们必须使用children()
函数而不是find()
太好了!我想出来了。谢谢大家。问题是,这会将嵌套的
列表中的元素也计算在内,这可能是不正确的。最好使用.children()
而不是原始问题中的.find()
。@Pointy thanx,是的,如果ol有嵌套列表,那么我们必须使用children()
函数而不是find()
太好了!我想出来了。谢谢各位。