是否有“或”属性选择器,如输入[type = button | text]?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有“或”属性选择器,如输入[type = button | text]?相关的知识,希望对你有一定的参考价值。
我试图在页面上选择所有input
元素,但不是image
,button
或submit
类型的那些元素。我首先想到的是选择input
类型的所有text
元素,然后选择所有类型的checkbox
等。
但是,这不是很优雅。我想知道这里是否有更好的技术。有用的是像input[type=text|checkbox|radio|password|etc]
这样的选择器,但这似乎不可用。
我知道我也可以选择所有input
s,然后使用.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]?的主要内容,如果未能解决你的问题,请参考以下文章
是否有跨浏览器的方式在 expando 属性上使用 jQuery 选择器?