-1

すべてのチェックボックスがチェックされていることを確認するために、次のようなことをしました:

var container = $("#container");
$(container).find("input[type='checkbox'][checked != 'checked']").length == 0

しかし、少なくとも1つのボックスが選択されていることを確認するためにchecked属性を使用している場合、常に長さ= 0になります。これに対する私のコードは次のとおりです。

 $(container).find("input[type='checkbox'][checked = 'checked']").length > 0 

違いは、「!=」を使用した最初のコード スニペットと、「=」を使用した 2 番目のコード スニペットにあります。では、なぜ2番目のケースで機能しないのですか?

私はそれを使用して動作させることができることを知っています:

  $(container).find("input[type='checkbox']:is('checked')").length > 0 
  $(container).find("input[type='checkbox']:checked").length > 0

しかし、上記のものが機能しない理由を理解したいと思っていました:O

これが原因かどうかはわかりませんが、すべてのチェックボックスを選択しており、すべてのチェックボックスに「checked」属性値を設定することで実装されています

$(container).find("input[type='checkbox']").attr("checked","checked")

そして、私が持っているすべてのチェックボックスの選択を解除するには:

$(container).find("input[type='checkbox']").removeAttr("checked","checked")

選択を解除しているときにチェックされた属性を削除している可能性があります.UIを介してチェックボックスを再度クリックすると、チェックされた属性値が取得されません。これは事実ですか?

4

1 に答える 1

0

次にこれを試してください

$('#container').find("input[type=checkbox]:checked").length > 0

また

$.each($("input[type=checkbox]:checked"), function() {

alert('Checked')

});

http://jsfiddle.net/kabichill/hAv3z/

于 2013-01-18T06:38:22.017 に答える