0

jqueryを使用してすべてをチェックし、すべてをチェック解除したいループにチェックボックスがあります。Jquery check all と uncheck all 関数を実装しましたが、checkall というラベルの付いたチェックボックスをチェックした後、ループ内の最初のチェックボックスのみをチェックします。どうすればこれを正しく実装できますか? コードを以下に示します。ありがとう。

意見:

<div><input type="checkbox" class="check_all"> Check all</div>
  <?php
      $cnt=0;
   echo form_open('students/del_student/'.$tennant_id);
    foreach($data_student as $row)
    {
      $cnt++;
      echo"<input type='hidden' name='course_occasion_id'   value=".$row->course_occasion_id.">";
      ?>
       <address>

     <div class="row-fluid">
      <div class="span2"><input type='checkbox' name='student_id[]'id="student_id" value="<?php echo $row->id;?>"  ></div>
      <div class="span4"><?php echo anchor("students/student/$row->id/$tennant_id",$row->first_name);?></div>
      <div class="span4"><?php echo $row->last_name;?> </div>
      <div class="span2"><?php echo $row->status;?> </div>
     </div>
     </address>
    <?php
     }
     ?>

Javascript:

 <script type="text/javascript">

   $('.check_all').on('click', function () {


    $("#student_id").prop('checked', $(this).prop('checked'));


   });
  </script>

出力:

ここに画像の説明を入力

4

4 に答える 4

3

同じIDで各チェックボックスを作成しています:

id="student_id"

ID はページ全体で一意である必要があります。

代わりに、これをクラスに変更します。たとえば、クラスclass="student_id"を探すようにセレクターを変更します。

$(".student_id").prop('checked', $(this).prop('checked'));
于 2013-07-15T08:49:51.367 に答える
1

代わりに使用してくださいclass..id一意であるため

  $('.check_all').on('click', function () {

    $(".std").prop('checked', $(this).prop('checked'));

   });

そしてあなたのhtml

<div class="span2"><input type='checkbox' name='student_id[]' class="std" value="<?php echo $row->id;?>"  ></div>
于 2013-07-15T08:51:37.077 に答える
1

idドキュメント内で一意である必要があります。

jQuery では代わりに#id使用.classし、HTML ではclass=...代わりにを使用しますid=...

$(".student_id").prop('checked', $(this).prop('checked'));

HTMLのの違いをidclass見てみましょう。

  • id = name [CS]

    この属性は、要素に名前を割り当てます。この名前はドキュメント内で一意である必要があります。

  • class = cdata-list [CS]

    この属性は、クラス名またはクラス名のセットを要素に割り当てます。任意の数の要素に同じクラス名を割り当てることができます。複数のクラス名は空白文字で区切る必要があります。

于 2013-07-15T08:50:06.490 に答える