2011-12-25 94 views
1

我试图执行一个按键事件bus_lines div内的div。如何在jquery中选择最接近的隐藏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中执行按键事件,则不起作用。我需要知道按键的最接近的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或摘要。但是到目前为止,我尝试过的所有选择器都给出了bus_lines div或者bus_lines div的父节点。 – 2011-12-25 03:07:16

+0

@KyokaSuigetsu - 我真的不确定。我认为上述回答了你的问题。也许用更彻底的例子发布一个新问题? – 2011-12-25 03:26:03

+1

@KyokaSuigetsu亚当斯的回答是正确的。你可以查看我制作的jsfiddle,显示他的选择器工作。 [JSfiddle](http://jsfiddle.net/PdZKe/) – flynfish 2011-12-25 03:48:21