0

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

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

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

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

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

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

4

2 回答 2

3

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

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

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

$(document).on('keypress', ':input:not([id^=keypress_])', function () {
于 2013-02-08T05:09:01.850 回答
0

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

这可能对您有用:

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

或这个:

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

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

于 2013-02-08T05:11:30.350 回答