我需要将重点放在“ .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:hiddenopacity:0的元素仍将被视为可见:

http://api.jquery.com/visible-selector/

关于javascript - 确定哪个元素是第一个并执行此操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18985046/

10-12 14:24