2010-06-22 63 views
1

我只想在div「myDiv」中包含的「a」元素上使用以下函數包含在div中的原型選擇類

這是我一直使用至今代碼:

$$('a[class="active"]').each(function(element) { 
     element.removeClassName("active"); 
    }); 

回答

2

你可以做兩種方式:

1)查找myDiv然後用Element#select

$('myDiv').select('a[class="active"]').each(...); 

2)使用ID選擇器與後代選擇與$$

$$('#myDiv a[class="active"]).each(...); 

如果只想直接兒(未後代),你可以使用子選擇器(注意>):

$$('#myDiv > a[class="active"]).each(...); 

題外話# 1:將a[class="active"]寫入選擇器的常用方法是a.active,例如「$('myDiv').select('a.active').each(...);」。

偏離主題#2:您也可以看看invoke函數,該函數用於在Enumerable對象中的每個項目上調用相同的函數(例如,「$('myDiv').select('a[class="active"]').invoke('removeClassName', 'active');」)。 invoke不錯,簡短而富有表現力,但比你自己做的要慢。 (儘管如此,只有當你進入數千個元素時纔有意義。)