在使用jquery </li>将新的<li>添加到我的列表后,如何添加计数器

时间:2014-10-10 10:04:36

标签: javascript jquery

在我的列表顶部添加新行后,我尝试将动态计数器添加到我的列表中。 代码无法正常工作,因为如果我们有这个列表

,它就算错了
  1. A
  2. C
  3. 我将添加D而不是像这样

    1. d
    2. A
    3. C
    4. 是这样做的

      1. d
      2. A
      3. C
      4. 最后我想删除最后一行,如果我在底部添加新行但不起作用 有谁知道为什么?

        这是我的代码

        html包含我想要添加的内容的变量

        $(".il_admin-"+id).prepend(html).slideDown("slow");​
        
        var i = GetURLParameter("paged");
        var count = (i*10)-10;
        jQuery(".il_admin li").each(function(i) {
        i = count + i;
        var text_attreibute = $(this).find(".il_admin_raw_count");
        $(text_attreibute).html(i+1);
        });
        
        var size= $('.il_admin li').size();
        
        if (size >10)
        {
        var last_row = $('.il_admin li').last().attr('class');
        $(last_row).remove();
        }
        

2 个答案:

答案 0 :(得分:0)

jQuery(".il_admin li").each(function() {
    var text_attreibute = $(this).find(".il_admin_raw_count");
    $(this).html(parseInt($(this).index())+1 + '. ' + text_attreibute);
});

由于您使用长轮询,因此必须在更改列表时绑定侦听器才能刷新索引。试试这个:

jQuery(document).on("change", ".il_admin", function(i, list_li) {
    // This will be call each time your DOM inside your .il_admin change (= you have added a new line)

    $(list_li).each(function(j, li) {
        var text_attreibute = $(li).find(".il_admin_raw_count");
        var output = parseInt($(li).index())+1 + '. ' + text_attreibute;
        if (output != $(li).html()) { // We change the content only if the index has changed like this we avoid infinit loop because we will change the html again and it could call our listener again
            $(li).html(output);
        }
    }

}).

答案 1 :(得分:0)

为了工作,解决方案是改变这一行

$(".il_admin-"+id).prepend(html).slideDown("slow");

到这个

$(".il_admin-"+id).parent().prepend(html).slideDown("slow");​