选择具有共同Id的各种不同类

时间:2012-10-30 15:02:32

标签: javascript jquery jquery-selectors

我怎样才能减少这种选择?

$("#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");
});

4 个答案:

答案 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
});