1

これが私が持っているものです(ここではTwitterのブートストラップが使用されています)

#html
 <ul id="my-categories">
    <li>
      <label class="checkbox">
        <input checked="checked" name="supername[]" type="checkbox" value="43243">fdsfdsfds
      </label>
    </li>

    <li>
      <label class="checkbox">
        <input checked="checked" name="supername[]" type="checkbox" value="21343">sadsadsadsadsd
      </label>
    </li>
    <li class="fdsfds"></li>
    <li>
      <a href="#" id="my-categories-btn">Check/Uncheck all</a>
    </li>
  </ul>

 # js file
 $("#my-categories-btn").click(function(){
    $("my-categories input[type=checkbox]").each(function(){
        isChecked = $(this).attr('checked');
    $(this).attr('checked', !isChecked);
    });
  })    

何らかの理由で機能しません。

どうすれば修正できますか?

4

4 に答える 4

4

DOMオブジェクトを提供し、 jQueryオブジェクトと属性を jQuery オブジェクトで呼び出すことができるため、my- categoriesを使用してjQuery 関数を呼び出すよう#に変更thisする必要もありませんでした。$(this)attr()this$(this)

ライブデモ

$("#my-categories-btn").click(function(){
    $("#my-categories input[type=checkbox]").each(function(){
        $(this).attr('checked', false);
    });
})    

ここではそれぞれ必要ありません。チェックされたプロパティに値を直接割り当てることができます

ライブデモ

$("#my-categories-btn").click(function() {
    $("#my-categories input[type=checkbox]").attr('checked', false);
});​

チェックとチェック解除の両方で、チェックボックス コレクションのチェック済みステータスを使用できます。

ライブデモ

$("#my-categories-btn").click(function() {
    lst = $("#my-categories input[type=checkbox]");
    $(lst).attr('checked', !lst[0].checked);
});​
于 2013-01-01T11:52:33.113 に答える
3

すべてのチェックボックスをオン/オフするために使用しているリンクの代わりに、チェックボックスを使用することをお勧めします。

このようにして、現在の状態を切り替えるだけでなく、すべてのチェックボックスをオンまたはオフにするかどうかを決定できます。

$('#my-categories-btn').change(function() {
    $('#my-categories input[type="checkbox"]').prop('checked', this.checked);
});​

追加のチェックボックスを使用してデモを参照してください。

于 2013-01-01T12:16:27.903 に答える
1

my-categoriesプレフィックスを付けて ID セレクターとして指定する必要があります。#

 $("#my-categories-btn").click(function(){
    $("#my-categories input[type=checkbox]").each(function(){
        isChecked = $(this).attr('checked');
    $(this).attr('checked', !isChecked);
    });
  });  
于 2013-01-01T11:53:53.363 に答える
1

それに応じてスクリプト コードを更新します。

$("#my-categories-btn").click(function(){
    $("#my-categories input[type=checkbox]").each(function(){
        isChecked = $(this).attr('checked');
    $(this).attr('checked', !isChecked);
    });
  })  
于 2013-01-01T11:54:07.627 に答える