2016-05-21 4 views
1

私は各行の最初の列にチェックボックスだけを持つテーブルを持っています。 Jquery(change event)をクリックしたチェックボックスを探したい。私はこれを試しても何も表示されません:JQueryを使用してテーブルのチェックボックスを検索する方法は?

$('#table tbody tr td input[type=checkbox]').change(function() { 
      if (this.checked) { 
       alert("true");//for testing purposes 
      } 
      alert("false"); 
     }); 

どのようにクリックした要素を取得しますか?

<table id="table" class="table table-hover table-striped table-bordered"> 
        <thead> 
         <tr> 
          <th class="col-lg-1">Sıra No.</th> 
          <th class="col-lg-3">İsim/No</th> 
          <th class="col-lg-6">Koordinat Bilgisi</th> 
          <th class="col-lg-2">Mahalle/Kapı</th> 
         </tr> 
        </thead> 
        <tbody id="tableBody"> 
        </tbody> 
       </table> 

編集:テーブル本体が最初は空です。私はボタンをクリックした後にテーブルのボディを満たしています。各行の最初の列には、プレーンなjavasciptで作成されたinput要素があります。

var indexCheckbox = document.createElement('input'); 
      indexCheckbox.type = "checkbox"; 
      indexCheckbox.name = "indexCheckbox"; 
      indexCheckbox.value = i; 
      indexCheckbox.id = "indexCheckbox_" + i; 
+0

不十分です。要素が存在する前にコードが実行されているか、他のスクリプトエラーがあるようなサウンドです。 – charlietfl

+0

私はあなたの 'js'を' $(document).ready(function(){/ * Your code here * /}) 'に入れるべきだと思います。 – Azim

+0

https://jsfiddle.net/nxjkzs0c/2/これはCSSなしのデモです。 –

答えて

1

イベント委任アプローチは、一つの要素、チェックボックスにイベントハンドラをアタッチし、そしてイベントがのみ(#tableBodyにクリックされたチェックボックスから)バブルまでの1レベルを必要とします:

$('#tableBody').on("change", "input[type=checkbox]", function() { 
    if (this.checked) { 
     alert("true");//for testing purposes 
    }else{ 
     alert("false"); 
    } 
}); 

結果:https://jsfiddle.net/pLrk1vrf/

+1

今すぐご回答いただきありがとうございます。 –

関連する問題