私は、選択したクラスを持つページに任意の数の要素を持っています。jQueryすべての要素にクラスがある場合
<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...');
}
}
をしかし、それは、すぐに私は何の問題が何であるかのアイデアや優れたソリューションなので、正常に動作していない...関数を呼び出すと、アラートが実行されますこれをする?
注:実際のアプリケーションでは、それぞれの選択肢には、関数で使用されている要素変数の代わりになるものがあります。 choice
持つ要素がないときに何かを
しかし、その場合には
done
せずに、次は少しすっきりです:
試してみてください 'alert( 'all done ...');' – kev
これはちょっとタイプミスでした! – Cameron
@Cameron '.done'と' .choice'の長さ比較を、 '.done'ごとに' .hasClass'を行うのではなく、どうしたらいいですか? ($( '。choice')。length == $( '。done')。length){アラート( 'All done'); } '。ラッパーの内部にある場合はより良いでしょう。 –