2011-12-25 3 views
1

Я пытаюсь выполнить событие нажатия клавиши div в div bus_lines.Как выбрать ближайший скрытый div в jquery?

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

}); 

Вот как это выглядит в поджигатель:

enter image description here

Он работает только на родительском DIV, который является один с идентификатором bus_lines. Если я пытаюсь выполнить события нажатия клавиш внутри fs_buslines или fs_bustax, это не работает. Мне нужно знать ближайший div, где выполняется нажатие клавиши. В основном я пытаюсь выполнить события нажатия кнопок с помощью сочетаний клавиш.

ответ

6

closest осуществляет поиск по предкам элемента. Похоже, вы ищете первого потомка текущего элемента, который соответствует селектору. В результате вы хотите получить find

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

Эти кнопки находятся внутри разделов внутри bus_lines. Предыдущий 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

Смежные вопросы