2012-10-30 3 views
1

이 종류의 선택기를 어떻게 줄일 수 있습니까?Id가 공통 인 다양한 고유 클래스 선택

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

왜 당신이 선택을 줄일 필요가? find ('.class1, .class2, .class3 ...')'와 같이 다시 쓸 수 있지만, 찾고있는 유일한 것인가? – raina77ow

+0

마크 업의 관련 섹션을 게시 할 수 있습니까? –

+0

귀하의 문서 구조에 의존하십시오. 마크 업의 일부를 보여줍니다. –

답변

1

당신은 컨텍스트를 사용하는 선택의 과부하를 사용할 수 있습니다 제거, 한 번에 서로 다른 두 가지로 선택을 분할하는 find() 방법을 사용할 수 있습니다.

컨텍스트는 jQuery 랩핑 된 세트 또는 다른 선택기 문자열이 될 수 있습니다.

$('.class1, .class2, .class3, .class4, .class5', '#id') 
2

사용 속성 - 시작 -와 선택

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

또는 포함되지 않아야하는 다른 'class...' 클래스가있을 경우 수동으로 필터링 할 수 있습니다.

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

'class' 더하기 하나 이상의 숫자를 검색, 플러스 단어 경계합니다.

+0

멋진 셀렉터 – RomanTheGreat

+0

그러나 이것은'.class666'도 잡을 것입니다. –

+0

예.하지만 .class6도 선택합니다. 원하는 경우 괜찮습니다. –

1

당신은 따라서 반복 #id

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

당신은 .. 그런 경우에 .filter() 방법을 사용할 수 있습니다

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

// 또는 Attribute starts with selector ^

$("#id [class^="class"]").on("mouseover", function(e){ 
    // code 
}); 
관련 문제