0

以下は、すべてを選択してすべてを選択解除するサイクルを1回だけ実行する私のコードです。構文を.changeの代わりにに変更すると、正常に動作します.on('change').changejquery の 1.8.3 バージョンまでは動作しますが、それ以降は動作しません。

<div id="mainframe" align="center">
  <div align="left"><strong>Select All CheckBox Demo.</strong></div>
  <table border="0" cellpadding="5" cellspacing="1" class="table">
    <th><input type="checkbox" id="selectall"/></th>
    <th>Programming Language</th>
    <th>Rating</th>
    <tr>
      <td align="center"><input type="checkbox" class="case" name="case" value="1"/></td>
      <td>PHP</td>
      <td>5</td>
    </tr>
    <tr>
      <td align="center"><input type="checkbox" class="case" name="case" value="2"/></td>
      <td>JSP</td>
      <td>4</td>
    </tr>
    <tr>
      <td align="center"><input type="checkbox" class="case" name="case" value="3"/></td>
      <td>ASP</td>
      <td>3</td>
    </tr>
  </table>
</div>
$("#selectall").on('change',function () {
  if($(this).is(":checked")){
    $('.case').attr('checked',true);
  }else{
    $('.case').attr('checked',false);
  }
});

ペン

4

2 に答える 2

8

問題はattr使用方法にあります。prop代わりに使用して簡略化してください。

$(function(){
    $("#selectall").on('change',function () {
        $('.case').prop('checked', this.checked);
    });
});

フィドル

コメントの質問に基づいて更新します

jquery のバージョン 1.3.2 はonprop. これは非常に古いバージョンであり、attrおそらくそれ自体が特定の属性値 ( element のattribute場合) またはブール値 ( elementpropertyの場合) を処理して、属性値の追加/削除 (この種の属性 ( checkedselected...) の場合) または要素の設定または設定解除を行います。指定された値のタイプに基づくプロパティ。prop要素のプロパティを設定し、要素の属性を設定するために導入された jquery の新しいバージョンattr。おそらくこれが理由です。onまた、jquery の 1.3.2 バージョンではサポートされていないことに注意してください。

于 2013-08-07T21:17:16.643 に答える