1

jquery のチェックボックス :checked セレクターと混同しています。ドキュメントを読んでも、使い方がわかりません。

HTML:

<div class="addbox">
<h4><span class="addbox-text">Pick your best work from <b class="highlight-text">Flickr</b> to display in your portfolio</span></h4>
<div class="addbox-buttons"><input type="button" id="addbox-add" value="Add"><input type="button" id="addbox-cancel" value="Cancel"></div>
<div class="addmenu-item" id="addmenu-item-1e30"><span class="addmenu-image"><img class="addmenuimage" src="http://farm8.staticflickr.com/7122/7424355198_72620895bd_m.jpg"></span><span class="addmenu-info"><input type="checkbox" id="add-check-1e30">Orchid Profiles</span></div>
<div class="addmenu-item" id="addmenu-item-1230"><span class="addmenu-image"><img class="addmenuimage" src="http://farm8.staticflickr.com/7122/7424355198_72620895bd_m.jpg"></span><span class="addmenu-info"><input type="checkbox" id="add-check-1230">Orchid Profiles</span></div>
</div>​

チェック済みのjQuery

$("#addbox-add").click(function(){
    $("input[type=checkbox] :checked").each( function() {
        alert("yes");
    });
});

追加ボタンをクリックすると、2 つのチェックボックスがあり、チェックされたチェックボックスごとに警告メッセージが表示されます。しかし、それは機能していません。誰かが間違いを指摘できますか?

ここにjsfiddleがあります

4

1 に答える 1

6

スペースを削除します:動作デモ: http://jsfiddle.net/F6pag/4/

$("input[type=checkbox]:checked").each( function() {
//                     ^ ----- No space!!!
    alert("yes");
});

持っていた:

$("input[type=checkbox] :checked")
//                     ^--- Space! NO!!! :)

したがって、チェックボックス内の選択されたチェックボックス\ラジオを検索するコード...何を推測すると、jQueryはそれらのいずれも見つけられません。

スペースがない場合は、追加のフィルター情報として扱われます。

と同じように:

$("input[type=checkbox]").filter(':checked').each( function() {
    alert("yes");
});

ちなみに後者の方が早いです。

于 2012-06-25T10:55:38.107 に答える