我有一些向导标签,每个标签都包含表单元素。我想专注于每个选项卡的第一个表单元素。如何仅对可见元素保持焦点。 EG:当我导航到下一个标签表格时,我不希望我的第一个隐藏标签聚焦。
http://jsfiddle.net/infatti/kdWT8/
这似乎不起作用?
$('.focus:first:not(:hidden)').focus();
答案 0 :(得分:3)
你反过来说:
$('.focus:not(:hidden):first').focus();
现在你正在获得第一个带有.focus
类的元素,这当然是隐藏的,然后你只对可见元素进行过滤,这样就什么都没有了?
您需要获取可见元素,然后获取第一个元素。
答案 1 :(得分:0)
这是另一种方法:
$(document).find('.focus').filter(':visible').eq(0).focus();
使用 Fiddle
我认为链接比sizzle选择器更具可读性;在这里它读取“找到具有类焦点的所有元素,仅过滤那些可见的元素,取第一个并给予焦点”