在许多地方我必须将焦点设置在可见的字段上,并且我可以根据不同的场景显示多个字段.例如:
<input id="A">
<input id="B">
Run Code Online (Sandbox Code Playgroud)
情况是这两个输入中的任何一个都是可见的,我必须将注意力放在那里.
我现在在做什么:
if ($('#A').is(":visible")) {
$('#A').focus();
} else if ($('#B').is(":visible")) {
$('#B').focus();
}
Run Code Online (Sandbox Code Playgroud)
我觉得可以有更好的优化方式来做到这一点.我想删除这个if if if语句.
建议?
您可以使用:visible选择器,first()如下所示
$('#A:visible, #B:visible').first().focus();
Run Code Online (Sandbox Code Playgroud)
$('#A:visible, #B:visible')将选择具有id A和B且当前可见的元素,因此基本上只选择/过滤来自给定id的可见元素.
first 将获得匹配集中的第一个元素
focus 将元素设置为焦点.