除了少数几个输入元素的css选择器

时间:2013-02-08 05:06:31

标签: jquery jquery-selectors css-selectors

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

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

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

另一种方法是将输入元素的id附加到“keypress_”之类,然后使用

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

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

2 个答案:

答案 0 :(得分:3)

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

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

不要使用{j} 1.9中删除的.live。请通过.on使用事件委派:

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

答案 1 :(得分:0)

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

这可能对您有用:

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

或者这个:

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

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