jQuery,计算<ul>中动态添加的<li>的数量

时间:2015-12-22 23:49:03

标签: javascript jquery html

我在UL中有一个LI列表,它们都是通过jQuery动态添加的。我试图提醒此列表中的LI数量。现在我只能提醒它0.我认为这是因为它试图计算加载时的原始数字?这是我的代码和小提琴:

https://jsfiddle.net/ts7Lwbfs/1

<ul id="list"> 
    <li>original</li>
</ul>

var familly = []
familly.push('<li>1</li>');
familly.push('<li>2</li>');
familly.push('<li>3</li>');
familly.push('<li>4</li>');

$('#list').prepend(familly);

$('#list').on('click', 'li', function(ev){ 
    var howMany = $('#list').length; 
    alert(howMany);
});

如何在动态添加LI后提醒它以提醒LI的总数?

3 个答案:

答案 0 :(得分:2)

选择器$('#bet_slip')匹配ID为bet_slip的元素,因为ID是唯一的,jQuery不会期望有多个,而且没有元素有那个ID,你得零?

似乎你想要的是计算#list列表中LI的数量

$('#list').on('click', 'li', function(ev){ 
    var howMany = $('#list li').length; 
    alert(howMany);
});

FIDDLE

请注意,这会计算当前存在的所有LI,包括最初存在的那些。

答案 1 :(得分:1)

如果您只想查找新添加的li(不包括原文)的计数,您可以使用:not:first表达式过滤li并排除第一个。

$('#list').on('click', function(ev){ 
    var howMany = $(this).find('li:not(:first)').length; 
  alert(howMany);
});

https://jsfiddle.net/DinoMyte/ts7Lwbfs/4/

答案 2 :(得分:1)

您可以通过以下方式计算列表项的总数

$('#list').on('click', function(){ 
    var howMany = $('#list li').length; 
  alert(howMany);
});

要获取添加的列表项的数量,首先在添加新列表项之前捕获原始列表项的计数,然后从原始计数中减去函数中的总计。

var originalCnt = $('#list li').length;
$('#list').prepend(familly);

$('#list').on('click', function(){ 
    var howMany = $('#list li').length - originalCnt; 
  alert(howMany);
});

Fiddle Demo