我在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的总数?
答案 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);
});
请注意,这会计算当前存在的所有LI,包括最初存在的那些。
答案 1 :(得分:1)
如果您只想查找新添加的li(不包括原文)的计数,您可以使用:not:first
表达式过滤li并排除第一个。
$('#list').on('click', function(ev){
var howMany = $(this).find('li:not(:first)').length;
alert(howMany);
});
答案 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);
});