Javascript jQuery:not和:第一次排序

Javascript jQuery:not和:第一次排序,javascript,jquery,Javascript,Jquery,我试图以一个未被禁用或隐藏的形式获取第一个输入字段。我需要能够排除单选按钮、选择和特定ID 以下代码工作正常,除非在我想要的文本或密码字段之前出现select: $("form :input:visible:enabled:first:not('select')"); 如果排除:not('select'),select将作为第一个输入字段返回(正确地说,as:input几乎返回所有表单元素)。但是,当我包含:not('select')时,不会拾取任何内容。有什么想法吗 这个问题的第二部分-我假

我试图以一个未被禁用或隐藏的形式获取第一个输入字段。我需要能够排除单选按钮、选择和特定ID

以下代码工作正常,除非在我想要的文本或密码字段之前出现select:

$("form :input:visible:enabled:first:not('select')");
如果排除:not('select'),select将作为第一个输入字段返回(正确地说,as:input几乎返回所有表单元素)。但是,当我包含:not('select')时,不会拾取任何内容。有什么想法吗

这个问题的第二部分-我假设可以将:nots链接起来,这样我就可以得到如下内容:

$("form :input:visible:enabled:first:not('select'):not(#specific_id):not(type[radio])");

如果您交换
:not
:first
,它会工作吗

`$("form :input:visible:enabled:not('select'):first");`

按照您的方式,它选择第一个启用的标记,该标记只包含一个。如果这是一个选择,你什么也得不到。在这个版本中,它获取所有不是select的元素,然后获取该集合的第一个元素。

在这种情况下,最好使用
'type=select'
'type=xxx'
而不是“:not”选择器


或者,您可以使用
.is()
函数。

使用Tesserex的答案,您还可以加入几个not

$("form :input:visible:enabled:not('select, :radio, #id, .class'):first");

就像在任何其他jQuery标记中一样,只需用逗号分隔即可。

非常感谢-这就成功了!!整个上午我都快发疯了-你这个男人(或女人)!!;-)AlThanks一堆-出于某种原因,我认为你必须使用多个:不…这样更干净!