是否有“或”属性选择器,如输入[type = button | text]?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有“或”属性选择器,如输入[type = button | text]?相关的知识,希望对你有一定的参考价值。

我试图在页面上选择所有input元素,但不是imagebuttonsubmit类型的那些元素。我首先想到的是选择input类型的所有text元素,然后选择所有类型的checkbox等。

但是,这不是很优雅。我想知道这里是否有更好的技术。有用的是像input[type=text|checkbox|radio|password|etc]这样的选择器,但这似乎不可用。

我知道我也可以选择所有inputs,然后使用.filter()过滤它们但是有一个更通用的选择器来选择具有属性列表之一的元素吗?

答案

由于您希望包含除少数特定类型之外的所有内容,请尝试以下操作:

$('input:not([type=image],[type=button],[type=submit])')
另一答案
$('input[type=text], input[type=checkbox], input[type=radio]').stuff();

或(取自评论)

$('input:not([type=image],[type=button],[type=submit]')
另一答案

在CSS中,您可以选择以下内容:

input[type=text],input[type=checkbox],input[type=radio],input[type=password]

也许这也适用于jQuery。

另一答案

我知道它的旧,但我觉得最好的解决方案是给他们一个共同的类,然后用它作为选择器?

另一答案

以上答案并非完全正确。

当依赖于id(#)时,这些方法似乎失败了。

根据我的经验,我们需要为每个or语句添加id。

像这样:

$('#id input[type=text], #id input[type=checkbox], ...

以上是关于是否有“或”属性选择器,如输入[type = button | text]?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用属性选择器

如何使用属性选择器

form伪类

是否有跨浏览器的方式在 expando 属性上使用 jQuery 选择器?

是否可以添加文本(占位符或标签)来输入type =“color”并让它可以点击? [关闭]

如何用许多否定(:not)覆盖选择器?