2011-12-25 6 views
1

bus_lines div内のdivのキー押しイベントを実行しようとしています。jqueryで最も近いhidden divを選択するにはどうすればいいですか?

$('#bus_lines').keypress(function(e){ 
    var box = $(this).closest("div:hidden").attr("id"); 
    console.log(box); 

}); 

ここでは、放火犯で、次のようになります。

enter image description here

それだけbus_lines idの一つであり、親のdivに取り組んでいます。私がfs_buslinesまたはfs_bustaxの中でkeypressイベントを実行しようとすると、動作しません。私はkeypressが実行される最も近いdivを知る必要があります。基本的には、キーボードショートカットを使用してボタンクリックイベントを実行しようとしています。

答えて

6

closest要素の祖先で検索します。セレクタに一致する現在の要素の最初の子孫を探しているようです。その結果、あなたはfind

var box = $(this).find("div:hidden:first").attr("id"); 
+0

これらのボタンをしたいbus_lines内側のdivの内側にあります。前のdivは非表示に設定され、次のdivは表示に設定されます。変数ボックスに格納する必要があるのは、fs_buslines、fs_bustax、fs_regfees、またはsummaryのいずれかです。しかし、私が今までに試したセレクタはすべて、私にbus_lines divまたはbus_lines divの親を与えてくれます。 –

+0

@KyokaSuigetsu - 私は本当によく分かりません。私はあなたの質問に答えたと思った。たぶん、より完全な例で新しい質問を投稿してください。 –

+1

@KyokaSuigetsu Adamsの答えは正しいです。彼のセレクターが働いていることを私が作ったjsfiddleをチェックすることができます。 [JSfiddle](http://jsfiddle.net/PdZKe/) – flynfish