5

私はこれに苦労しています。アイテムのリストがあり、フォームの一部で何かが検証されると、対応するリストアイテムに「チェック済み」クラスが追加されます。

<ul>
<li class="title">Checklist</li>
<li class="checkType checked">Card Type</li>
<li class="checkNumber checked">Card Number</li>
<li class="checkName checked">Name on Card</li>
<li class="checkMonth checked">Expiry Month</li>
<li class="checkYear checked">Expiry Year</li>
<li class="checkCode checked">Security Code</li>
</ul>

.title{font-size:23px; font-weight:bold;}
.checked{ color:#f00;}

ただし、各アイテムのクラスがcheckedEXCEPTであることを確認するには、jQueryが必要titleです。

これは実行可能ですか?

デモ: http: //jsfiddle.net/bQtEQ/1/

答えのおかげで私は今次のものを持っています

        var counting = $("li.checked:not(.title)").length;
    if (counting == 6){
        console.log(counting);
    }
4

4 に答える 4

10

これは1つの単純なセレクターで実行可能です

$("li.checked:not(.title)").length

ここでの利点は、コーディングが少なくて済むことは別として、:not()検索中にセレクターが考慮されて結果セットが削減されることです。これは、jQueryがdom要素をインスタンス化する時間が短縮されることを意味します。これは、特に古いブラウザでは、実行時間が短縮されることを意味します。

于 2012-06-25T14:55:22.833 に答える
8

これにより、クラスタイトルを持たないクラス''の すべての<li>要素が得られます。checked

$('li.checked').not('.title').length

ただし、チェックされた要素の数だけが必要な場合:

$('.checked').length

十分なはずです。

于 2012-06-25T14:54:42.743 に答える
1
$('.checked').not('.title').length == $("ul li").length -1
于 2012-06-25T14:55:24.797 に答える
0
$("li").each(function() {
    if( !$(this).hasClass("title") && $(this).hasClass("checked") ) {
            alert("hah");
    }
 });
于 2012-06-25T14:55:59.430 に答える