我有一个包含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选择器完成吗?
答案 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/