2012-05-30 84 views
1

我有一個div,我想添加一個使用PrototypeJS的新樣式。但是下面的腳本不起作用。它有什麼問題?使用PrototypeJS添加CSS樣式

<div class='exercise-main'> 
</div> 

$$('.exercise-main').setStyle({ 
    backgroundColor: '#900', 
    fontSize: '12px' 
}); 
+0

如果我的答案有幫助,如果您接受我的回答,我會很感激。謝謝! (^ _ ^) – dontGoPlastic

回答

4

$$函數返回所有匹配的元件的陣列(如果有的話)。 setStyle是一個元素方法,而不是一個數組方法。

這裏有幾個選項。

如果您只希望匹配單個元素,這將起作用。

$$('.exercise-main')[0].setStyle({color:'red'}); 

如果您想在每個匹配的元素上設置樣式,其中任何一個都可以工作。他們基本上是一樣的。

$$('.exercise-main').each(function(element) { 
    element.setStyle({color: 'red'}); 
}); 

$$('.exercise-main').invoke('setStyle', {color:'red'}); 

當然,如果你的元素有一個ID,您可以使用$功能找到剛纔那個元素。這與$$不同,因爲您不會將它傳遞給選擇器字符串,而只是傳遞給它的字符串(即不包含'#')。此外,這隻返回元素或null - 不是數組 - 不是數組 - 所以您可以直接從返回的值中使用元素方法,這與您最初嘗試的方法類似。

$('myElementId').setStyle({color:'red'});