【问题标题】:Is there an "or" attribute selector, like input[type=button|text]?是否有“或”属性选择器,例如 input[type=button|text]?
【发布时间】:2011-08-24 08:39:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:

    既然你想包括所有的东西除了一些特殊的类型,试试这个:

    $('input:not([type=image],[type=button],[type=submit])')
    

    【讨论】:

    • +1 不幸的是,您的评论获得的赞成票多于您的回答。让我试着改进一下。
    【解决方案2】:
    $('input[type=text], input[type=checkbox], input[type=radio]').stuff();
    

    或(取自 cmets)

    $('input:not([type=image],[type=button],[type=submit]')
    

    【讨论】:

    • $('input:not([type=image],[type=button],[type=submit])(将此评论移至答案)
    【解决方案3】:

    在 CSS 中,您可以使用如下选择器:

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

    也许这也适用于 jQuery。

    【讨论】:

      【解决方案4】:

      我知道它很旧,但我认为最好的优雅解决方案是给它们一个通用类,然后将其用作选择器?

      【讨论】:

        【解决方案5】:

        以上答案并不完全正确。

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

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

        像这样:

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

        【讨论】:

          猜你喜欢
          • 2016-12-12
          • 2010-11-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-15
          • 2010-10-03
          • 1970-01-01
          • 2014-02-06
          相关资源
          最近更新 更多