2011-12-05 61 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

我確信有一個更好的解決方案,但不幸的是,這樣做需要對現有的contnent和功能進行一些重寫(甚至是遷移)。我有一個重構計劃,其中包括a.o.這是一個更簡單的解決方案。 – berkes

回答

2

each()方法中,您可以使用關鍵字this來引用當前元素。此外,if (wrapper.length)檢查是多餘的,因爲如果沒有提供元素,each()方法不會拋出錯誤。最後,你在jQuery對象中雙重包裝wrapper變量。

與所有考慮到這一點,下面應該爲你工作:

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

在您的示例中,regionClass是字符串'.region region-carousel-1'。但是我想要「region-carousel-1」這個部分。顯然,我可以通過preg-match提取,但是沒有更清晰的方法嗎? – berkes

+1

不幸的是,雖然獲得'region-carousel-x'的正則表達式應該是非常直接的。 –