【问题标题】:Count list items across multiple unordered lists (ul)计算多个无序列表 (ul) 中的列表项
【发布时间】:2014-05-09 23:14:02
【问题描述】:

我有它的工作,但它正在单独计算它们。我希望它继续计算每个无序列表。想法?谢谢!

例如:我有 2 个无序列表,我希望它都计算在内,因此如果每个列表有 5 个项目,则两者都应计为 10。

演示: http://jsfiddle.net/6XfkB/35/

function numberItems() {
    var itemCount = $('#ca-nav-wrap > li.ca-nav-list-group').find(".ca-nav-item-list > ul > li").length;
    var lihtml = "";
    for (var i = 1; i <= itemCount; i++) {
        lihtml += "<li>" + i + "</li>"
    }
    $('.ca-nav-num-list ul').html(lihtml);
}
numberItems();

【问题讨论】:

  • 我更新了我的小提琴以更好地解释这个问题。

标签: jquery


【解决方案1】:

我认为这应该可以解决问题。
看起来像在最后一行 $('.ca-nav-list-num ul').html(lihtml); 您正在同时找到 ul 并将 html 设置为您刚刚创建的内容,以便编写它们将始终保持不变

function numberItems() {
        var num = 1;
        $("li.ca-nav-list-group").each(function() {
            var itemCount = $(this).find(".ca-nav-list-item > ul > li").length;
            var lihtml = "";
            for (var i = 1; i <= itemCount; i++) {
                lihtml += "<li>" + num + "</li>" 
                num++
            }
            $(this).find('.ca-nav-list-num ul').html(lihtml);
            //$('.ca-nav-list-num ul').html(lihtml);
        });
    }
    numberItems();

【讨论】:

    【解决方案2】:

    使用这个:

    function numberItems() {
        var count = 0;
        $("div.ca-nav-list.ca-nav-list-item > ul").each(function() {
            $("li", $(this)).each(function() {
                count += 1;
                $("div.ca-nav-list.ca-nav-list-num ul", $(this).parent().parent().parent()).append("<li>"+count+"</li>");
            });
            console.log(count);
        });
    }
    numberItems();
    

    DEMO

    【讨论】:

    • 感谢您的回复。但是,我希望它在两个无序列表中继续计数(例如 1、2、3、4、5、6、7、8、9、10)。
    • @Smurfman82 已更新。这太容易了。为什么不自己试试??? :'((((
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2010-09-27
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多