我需要将重点放在“ .focus”的第一个表单元素或类上;以可见者为准。
似乎并没有对每个问题进行排序来确定先到哪个?
http://jsfiddle.net/infatti/tdvHJ/1/
$('.focus:visible:first, body:not(:has(.focus:visible)) input:visible:first, body:not(:has(.focus:visible)) textarea:visible:first').focus();
最佳答案
这将找到所有可见的输入元素,textarea元素和.focus元素:
$('input:visible, .focus:visible, textarea:visible')
它还将按照DOM中的顺序对其进行排序,因此文档中这些元素的第一个将是jQuery对象中的第一个。要访问第一个:
$('input:visible, .focus:visible, textarea:visible').eq(0);
并专注于它:
$('input:visible, .focus:visible, textarea:visible').eq(0).focus();
请注意,正如我刚刚发现的那样,如果jQuery占用了文档中的空间,它们就会认为它们是“可见的”。因此带有
visibility:hidden
或opacity:0
的元素仍将被视为可见:http://api.jquery.com/visible-selector/
关于javascript - 确定哪个元素是第一个并执行此操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18985046/