jQuery:从给定的id中选择特定元素并设置焦点.优化方式

Sah*_*rma 3 javascript jquery

在许多地方我必须将焦点设置在可见的字段上,并且我可以根据不同的场景显示多个字段.例如:

<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语句.

建议?

Tus*_*har 6

您可以使用:visible选择器,first()如下所示

$('#A:visible, #B:visible').first().focus();
Run Code Online (Sandbox Code Playgroud)

$('#A:visible, #B:visible')将选择具有id AB且当前可见的元素,因此基本上只选择/过滤来自给定id的可见元素.

first 将获得匹配集中的第一个元素

focus 将元素设置为焦点.