5

我们遇到了一个问题,当我们打开一个模态窗口时,我们试图将焦点设置到模态中不是隐藏类型的第一个输入元素。这是我们正在尝试的:

$("#test-overlay input[type!=hidden]:first").focus();

但是,此调用有效:

$("#test-overlay #loginInput").focus();

输入字段的 id 为 loginInput。

有什么想法吗?

4

1 回答 1

3

问题是由于 jQuery 解释选择器的优先顺序。尝试以下操作:

$('#test-overlay input').not('[type=hidden]').first().focus();

这有一个额外的好处,即不使用:firstand 属性不等于选择器,因为它们是 jQuery 特定的,并且使用它们的查询不能利用本机 DOM querySelectorAll() 方法提供的性能提升。

于 2012-06-21T15:31:38.163 回答