0

我在一个页面上有任意数量的元素,可以选择一个类,例如

<div class="choice"></div>
<div class="choice"></div>

当我运行一个函数时,它会在 div 中添加一个 done 类,因此它们变为:

<div class="choice done"></div>

在每次运行时在同一个函数中,我将检查其中有多少选项具有 done 类,当它们都具有它时,我将运行另一个函数。

这是我到目前为止所做的:

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,什么时候代替函数中使用的元素变量!

4

3 回答 3

5

您可以将其改写为:

当没有元素有choice但没有时做某事done

在这种情况下,以下内容会更简洁一些:

if (!$(".choice").not(".done").length) {
    alert("all done");
}

工作小提琴

于 2012-04-25T15:52:16.923 回答
2
$num + 1;

应该是

$num = $num + 1;

除此之外,可能还有其他人建议的更好的解决方案。

于 2012-04-25T15:57:37.767 回答
1
if (!$(".choice:not(.done)").length)
    // do your magic here.
于 2012-04-25T15:54:11.513 回答