我想要聚焦第一个不是type=hidden
的输入元素。我已经做到这一点,但它仍然会尝试关注隐藏的元素。
$('#content input:first').focus();
答案 0 :(得分:10)
使用:visible
选择器:
$('#content input:visible:first').focus();
:visible
docs:
描述:选择所有可见的元素。元素可以 被认为是隐藏的有几个原因:
- 他们的CSS显示值为none。
- 它们是type =“hidden”的表单元素。
- 它们的宽度和高度明确设置为0.
- 隐藏了一个祖先元素,因此页面上不会显示该元素。
如果对您来说太过分了,请使用Attribute Not Equal Selector
:
$('#content input[type!="hidden"]:first').focus();
Attribute Not Equal Selector
docs:
描述:选择既没有指定属性,也没有指定属性但没有特定值的元素。
答案 1 :(得分:1)
您需要选择具有属性的元素过滤并首先显示。
$("#content input[type!='hidden']:first").focus();