【问题标题】:css selector for all input elements except a few所有输入元素的 css 选择器,除了少数
【发布时间】:2013-02-08 05:06:31
【问题描述】:

我有一个包含 10 个输入元素的 HTML 表单,我想在除其中 2 个之外的每个输入元素上调用一个按键函数

$(":input").live("keypress", function(e){ 
// something...
});

上述选择器适用于所有输入元素。但我想从上面的代码中排除我的 2 个输入元素(按 id 或按类)。我该怎么做? css 选择器中有 exclude/not 功能吗?

另一种方法是附加输入元素的 id 以包含在“keypress_”之类的内容中,然后使用

$("[id^=keypress_]").live("keypress", function(e){ 
// something...
});

但我不想更改 HTML id。这可以通过css选择器完成吗?

【问题讨论】:

  • 你确定你想要一个纯 CSS 选择器而不使用任何 jQuery 提供的选择器吗?因为:input 不是 CSS 选择器。
  • 对不起.. 我认为 :input 是一个 CSS 选择器。无论如何 :input:not([id^=keypress_]) 为我做了诀窍

标签: jquery jquery-selectors css-selectors


【解决方案1】:

您可以使用:not 选择器或.not jQuery 方法。在这种情况下,两者的工作方式应该相同。

$(":input:not([id^=keypress_]")
$(":input").not("[id^=keypress_]")

不要使用.live,因为它已在 jQuery 1.9 中被删除。改为通过.on 使用事件委托:

$(document).on('keypress', ':input:not([id^=keypress_])', function () {

【讨论】:

    【解决方案2】:

    在 jQuery 中有一个 :not() 选择器,还有一个 .not() 方法。

    这可能对你有用:

    $(":input:not([id^=keypress_])")
    

    或者这个:

    $(":input").not("[id^=keypress_]")
    

    此链接可能包含更多信息。 http://api.jquery.com/not-selector/

    【讨论】:

      猜你喜欢
      • 2018-04-29
      • 2020-04-11
      • 2023-03-13
      • 2013-05-22
      • 2013-06-04
      • 2014-12-10
      • 2010-10-07
      • 2013-08-07
      相关资源
      最近更新 更多