将注意力集中在每个选项卡的第一个输入上

时间:2013-09-23 19:17:42

标签: jquery css3 twitter-bootstrap

我有一些向导标签,每个标签都包含表单元素。我想专注于每个选项卡的第一个表单元素。如何仅对可见元素保持焦点。 EG:当我导航到下一个标签表格时,我不希望我的第一个隐藏标签聚焦。

http://jsfiddle.net/infatti/kdWT8/

这似乎不起作用?

$('.focus:first:not(:hidden)').focus();

2 个答案:

答案 0 :(得分:3)

你反过来说:

$('.focus:not(:hidden):first').focus();

现在你正在获得第一个带有.focus类的元素,这当然是隐藏的,然后你只对可见元素进行过滤,这样就什么都没有了?
您需要获取可见元素,然后获取第一个元素。

FIDDLE

答案 1 :(得分:0)

这是另一种方法:

$(document).find('.focus').filter(':visible').eq(0).focus();

使用 Fiddle

我认为链接比sizzle选择器更具可读性;在这里它读取“找到具有类焦点的所有元素,仅过滤那些可见的元素,取第一个并给予焦点”