2016-05-18 5 views
-2

ユーザーが行をクリックしたときに、次の表内の要素のインデックスを取得したいとします。jQueryでテーブルの行インデックスを取得する

<table class="table table-hover" id="event_table"> 
    <thead> 
     <tr> 
     <th>Event Title</th> 
     <th>Event Location</th> 
     <th>Event Time</th> 
     <th>Event Date</th> 
     </tr> 
    </thead> 
    <tbody> 

     <tr> 
      <td>Gathering</td> 
      <td>City Centre</td> 
      <td>10:30</td> 
      <td>10/09/2016</td> 
     </tr> 
     <tr> 
      <td>Meetup</td> 
      <td>Some place</td> 
      <td>12:30</td> 
      <td>15/09/2016</td> 
     </tr> 


    </tbody> 
    </table> 

どうすればjQueryでこれを行うことができますか?あなたのコードは正常に動作します

$("#event_table tbody tr").on("click", function() { 
    $(this).index(); 
}); 
+0

あなたの構文は少しオフになっている:私はこれに似た何かを試してみました '$(この).INDEX() '。そして、あなたがそれを見たいなら、 'alert'か' console.log'を呼び出します。 – Barmar

+0

コンソールに多少のエラーがありますか? – demo

+0

ええ、私はログに記録しようとしました/それを警告し、何も起こらないようです。 –

答えて

2

$("#event_table").on("click", "tbody tr", function() { 
 
    alert($(this).index()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <table class="table table-hover" id="event_table"> 
 
    <thead> 
 
     <tr> 
 
     <th>Event Title</th> 
 
     <th>Event Location</th> 
 
     <th>Event Time</th> 
 
     <th>Event Date</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr> 
 
      <td>Gathering</td> 
 
      <td>City Centre</td> 
 
      <td>10:30</td> 
 
      <td>10/09/2016</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Meetup</td> 
 
      <td>Some place</td> 
 
      <td>12:30</td> 
 
      <td>15/09/2016</td> 
 
     </tr> 
 
    </tbody> 
 
    </table>

+0

奇妙なことに、私は過去1時間のデバッグに費やしてしまい、うまく動作しません。テーブルは動的にロードされており、そのテーブルとは何か関係があります。私はチェックします。 –

+0

うん、私はそれを理解しました。動的にロードされたので、新しい行が追加された後に 'on(" click "、function(){...})'を追加する必要がありました。 –

+0

実際には、シーケンスを気にする必要はありません。私はjsコードスニペットを更新しました。それはajaxを読み込んだ 'tr'でも動作するはずです。 – Uzbekjon

関連する問題