1

この種のセレクターをどのように減らすことができますか?

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

4 に答える 4

2

属性-starts-withセレクターを使用する

$("#id *[class^='class']");

'class...'または、含めるべきではないクラスが他にある場合は、手動でフィルタリングできます。

$("#id *[class^='class']").filter(function(i, el) {
    return /class\d+\b/.test(el.className);
});

'class'これにより、プラス1桁以上、および単語境界が検索されます。

于 2012-10-30T15:05:30.773 に答える
1

コンテキストを使用するセレクターオーバーロードを使用できます。

コンテキストは、jQueryでラップされたセットまたは別のセレクター文字列にすることができます。

$('.class1, .class2, .class3, .class4, .class5', '#id')
于 2012-10-30T15:09:00.447 に答える
1

このメソッドを使用してfind()、セレクターを2つに分割し、繰り返しを削除することができます。#id

$('#id').find( '.class1, class2, class3, class4, class5')
        .on("mouseover", function(e){
            // code
         });
于 2012-10-30T15:06:49.527 に答える
1

.filter()このような場合にこの方法を使用できます。

$("#id").filter(".class1, .class2, .class3, .class4, .class5").on("mouseover", function(e){
    // code
});

//または 属性はセレクターで始まります^

$("#id [class^="class"]").on("mouseover", function(e){
    // code
});
于 2012-10-30T15:22:22.660 に答える