[英]Count maximum nested list items JQuery, Javascript, HTML
我有一个带嵌套列表的无序列表。 使用Jquery或Javascript,我需要在悬停在“top_level_list”ul上的所有嵌套列表中找到“second_level_item”列表项的最大数量。 例如,如果我将鼠标悬停在下面的“top_level_list”上,它应输出数字3,因为第二个嵌套列表包含3个项目,即任何给定嵌套列表的最大数量。
<ul class="top_level_list">
<li class="top_level_item">
<ul class="second_level_list">
<li class="second_level_item">This list has 1 item - A</li>
</ul>
</li>
<li class="top_level_item">
<ul class="second_level_list">
<li class="second_level_item">This list has 3 items - A</li>
<li class="second_level_item">This list has 3 items - B</li>
<li class="second_level_item">This list has 3 items - C</li>
</ul>
</li>
</ul>
我当前的代码返回所有“second_level_list”中所有列表项的总和,因此输出数字4。
$(function countMax() {
$('.top_level_list').hover(
function () {
var countMaxItem = $(this).children('.top_level_item').children('.second_level_list').children('.second_level_item').length;
alert(countMaxItem);
}, function () {
//empty
}
);
});
提前致谢。
你可以用这个:
var result = Math.max.apply(null, ($('.second_level_list', this).map(function() {
return $(this).children('li').length;
}));
要么
var counts = [];
$('.second_level_list', this).each(function() {
counts.push($(this).children('li').length);
});
var result = Math.max.apply(null, counts);
这将遍历所有second_level_list,然后计算他们的second_level_item子项,如果它高于之前更新最大计数计数器。
$(function countMax() {
$('.top_level_list').hover(
function () {
maxCount = 0;
$('.second_level_list', this).each(function (index, secondLevelList) {
if ($(secondLevelList).children('.second_level_item').length > maxCount) {
maxCount = $(secondLevelList).children('.second_level_item').length;
}
});
alert(maxCount);
},
function () {
//empty
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.