2011-12-05 4 views
3

의 다른 또는 모든 클래스를 가져옵니다 :HTML을 감안할 때 항목

<div id="carrousel-wrapper"> 
    <div class="region region-carousel-1"> 
    .... 
    </div> 
    <div class="region region-carousel-2"> 
    .... 
    </div> 
</div> 

나는 다음과 같이 선택기 물마루 : 도보

var wrapper = $('#carousel-wrapper .region'); 
    if(wrapper.length) { 
    $(wrapper).each(function(i) { 
     var regionClass = 'region-carousel-' + (i + 1); 

을하지만 깨끗한 방법은 regionClass을 찾고 싶어요. 현재의 방식은 예를 들어 .region-carousel-1 존재하지 않습니다.

.carrousel-wrapper .region의 "추가"하위 클래스를 검색하려면 어떻게해야합니까?

+1

어쩌면 (로리 제외) 더 나은 솔루션이있다. 왜 수업을 찾을 필요가 있니? 너는 그걸로 무엇을하고 있니? – RoToRa

+0

나는 더 나은 해결책이 있다는 것을 확신하지만, 불행히도 이렇게하는 것은 기존의 컨 피넨 트와 기능을 꽤 재 작성 (심지어 마이그레이션)해야합니다. 나는 a.o를 포함하는 리팩토링을 계획했다. 이에 대한 훨씬 간단한 해결책입니다. – berkes

답변

2

each() 메서드 내에서 this 키워드를 사용하여 현재 요소를 나타낼 수 있습니다. 또한 제공된 요소가 없으면 each() 메서드가 오류를 throw하지 않으므로 if (wrapper.length) 검사가 중복됩니다. 마지막으로, jQuery 오브젝트에서 변수 wrapper을 이중 랩핑합니다. 마음에 모두와

, 아래 당신을 위해 작동합니다 : 당신이 다시 걸음을하고 더 큰 그림을 설명하면

var wrapper = $('#carousel-wrapper .region'); 
wrapper.each(function(i) { 
    var regionClass = $(this).attr("class"); 
}); 
+0

예를 들어, regionClass는 문자열'.region region-carousel-1'입니다. 그러나 나는 '지역 회전 목마 -1'부분을 원한다. 분명히, 나는 그 추출물을 preg-match 할 수 있지만 더 깨끗한 방법은없는 것입니까? – berkes

+1

불행하게도,'region-carousel-x'를 얻기위한 정규 표현식은 꽤 간단합니다. –