我试图在未禁用或隐藏的表单中获取第一个输入字段。我需要能够排除单选按钮,选择和特定ID。
以下代码完美无缺,除非select在我想要的文本或密码字段之前:
$("form :input:visible:enabled:first:not('select')");
如果我排除:not('select'),则返回select作为第一个输入字段(正确如此,因为:input几乎返回所有表单元素)。但是,当我包含:not('select')时,没有任何东西被拾取。有什么想法吗?
这个问题的第二部分 - 我认为可以链接:不是所以我可以有类似的东西:
$("form :input:visible:enabled:first:not('select'):not(#specific_id):not(type[radio])");
答案 0 :(得分:7)
如果您更换:not
和:first
?
`$("form :input:visible:enabled:not('select'):first");`
你拥有它的方式,它选择第一个启用的标签,一组只有一个。如果那个是选择,你什么也得不到。使用此版本,它会获取不是选择的所有内容,然后将获取该集合的第一个元素。
答案 1 :(得分:2)
使用Tesserex的答案,你也可以加入几个不是。
$("form :input:visible:enabled:not('select, :radio, #id, .class'):first");
只需用逗号分隔,就像在任何其他jQuery标记中一样。
答案 2 :(得分:0)
最好在这种情况下使用'type=select'
或'type=xxx'
而不是':not'选择器。
或者,您可以使用.is()
功能。