我在页面上有任意数量的元素,例如。
<div class="choice"></div>
<div class="choice"></div>
当我运行一个函数时,它会在div中添加一个完成的类,以便它们变为:
<div class="choice done"></div>
在这个相同的函数中,每次运行时我都要检查有多少这些选项已经完成了它们的类,当它们全部拥有它时,我将运行另一个函数。
这是我到目前为止所做的:
function addDone(element) {
$num = 0;
$(element).addClass('done');
$('.choice').each(function() {
if($(this).hasClass('done')) {
$num + 1;
}
});
if($num >= $('.choice').length) {
alert('all done...');
}
}
但是一旦我调用该函数它就会运行警报......所以不能正常工作,任何有关问题的想法或更好的解决方案吗?
注意:在真实应用中,每个选项都有一个id,代替函数中使用的元素变量!
答案 0 :(得分:4)
您可以将其改为:
在没有
的元素时执行某些操作choice
但没有done
在这种情况下,以下是一个小整洁:
if (!$(".choice").not(".done").length) {
alert("all done");
}
答案 1 :(得分:2)
$num + 1;
应该是
$num = $num + 1;
除此之外,可能有更好的解决方案,正如其他人所建议的那样。
答案 2 :(得分:1)
if (!$(".choice:not(.done)").length)
// do your magic here.