我怎样才能减少这种选择?
$("#id .class1, #id .class2, #id .class3, #id .class4, #id .class5").on("mouseover", function(e){
// code
});
修改
示例:
$("#my_id .product, #my_id .date, #my_id .due").on("mouseover", function(e){
$(this).addClass("edit");
});
答案 0 :(得分:2)
使用 attribute-starts-with 选择器
$("#id *[class^='class']");
或者如果可能有其他'class...'
类不应包括在内,您可以手动过滤。
$("#id *[class^='class']").filter(function(i, el) {
return /class\d+\b/.test(el.className);
});
这将搜索'class'
加上一个或多个数字加上一个单词边界。
答案 1 :(得分:1)
您可以使用find()
方法将您的选择器拆分为两个不同的一次,从而删除重复的#id
$('#id').find( '.class1, class2, class3, class4, class5')
.on("mouseover", function(e){
// code
});
答案 2 :(得分:1)
您可以使用使用上下文的选择器重载。
context 可以是jQuery包装集或其他选择器字符串。
$('.class1, .class2, .class3, .class4, .class5', '#id')
答案 3 :(得分:1)
在这种情况下,您可以使用.filter()
方法。
$("#id").filter(".class1, .class2, .class3, .class4, .class5").on("mouseover", function(e){
// code
});
// OR Attribute starts with selector ^
$("#id [class^="class"]").on("mouseover", function(e){
// code
});