2017-06-10 8 views
-1

私はいくつかのユニークなIDを持つ<tr>要素を持っています。要素の中にネストされた一意のIDを取得するには?

<tr id="683535">some code</tr> 
<tr id="683536">some code</tr> 
<tr id="683537">some code</tr> 

私は、ユーザーがJS関数が呼び出されるものをした後、<tr>をクリックします。そして、私は<tr onclick=""のようなイベントを使わずに、現在の機能の中でこのIDを取得する必要があります。これも可能ですか?

答えて

1

イベントリスナーには、イベントの変数が必要です。

例:

$("body").on("click", "tr", function(e){ 
    var row = $(this); 
    console.debug(row); //Should print clicked TR 
    console.info(row.attr("id")); //Should print the ID 
}); 
+0

「this」を使うのが良いです。 'target'は実際の' 'ではなく、おそらく'​​'子どもの – charlietfl

+0

なぜ 'body'にクリックハンドラを追加しますか? – Andreas

+2

これは単なる例です。この習慣は「委任」と呼ばれます。たとえば、イベントリスナーが作成された後に、リッスンしたいコンテンツがDOMに追加されたときに便利です。 –

2

ブラウザと対話するためにあなたの唯一の方法はまた、あなたができる<a>タグ、クラシックのハイパーリンクであるよりも、あなたは、イベントをしたくない場合は、

$('tr').on('click',function(){ 
    var id = $(this).attr('id'); 
}); 
+0

いくつかのIDまたはクラスで 'tr'を制限できますか? '$( '#someId tr')。on( 'クリック'、fucntion(){}); –

+0

はいあなたは確信できます:) – Rahul

-1

を行うことができます<a href="javascript:doStuff(uid);">do stuff with your uid</a>のようなjs関数が含まれているので、単に行ジェネレータ内の各行に対してこのようなHFSを生成できます。

+0

これは2017年ではなく1997年です。最近では目立たないjavascriptがベストプラクティスと考えられています。言うまでもなく、このインラインを実行するために ''タグを使う必要はありません – charlietfl

+0

テレキネシスが開発されていない限り、イベントやハイパーリンクのクリックだけがブラウザとやり取りする方法なので、ハイパーリンクはすべてあなたのものです持っている;-) –

+0

イベントを使用しないことについては、どこで言いますか?ブラウザがjavascriptを使用してサポートしている場合、基本的なイベントもサポートされます。これは石器時代ではありません – charlietfl

関連する問題