div
PrototypeJS を使用して新しいスタイルを追加したいと考えています。しかし、次のスクリプトは機能しません。それの何が問題なのですか?
<div class='exercise-main'>
</div>
$$('.exercise-main').setStyle({
backgroundColor: '#900',
fontSize: '12px'
});
div
PrototypeJS を使用して新しいスタイルを追加したいと考えています。しかし、次のスクリプトは機能しません。それの何が問題なのですか?
<div class='exercise-main'>
</div>
$$('.exercise-main').setStyle({
backgroundColor: '#900',
fontSize: '12px'
});
この$$
関数は、一致するすべての要素 (存在する場合)の配列を返します。配列メソッドではなく要素メソッドsetStyle
です。
ここにはいくつかのオプションがあります。
単一の要素のみが一致することを期待している場合、これは機能します。
$$('.exercise-main')[0].setStyle({color:'red'});
一致するすべての要素にスタイルを設定する場合は、これらのいずれかが機能します。それらは本質的に同じです。
$$('.exercise-main').each(function(element) {
element.setStyle({color: 'red'});
});
また
$$('.exercise-main').invoke('setStyle', {color:'red'});
もちろん、要素に ID がある場合は、$
関数を使用してその要素だけを見つけることができます。$$
これは、セレクター文字列を渡さず、ID の文字列のみを渡すという点で異なります (つまり、'#' はありません)。また、これは配列ではなく要素または null のみを返すため、最初に試みたのと同様に、返された値から直接要素メソッドを使用できます。
$('myElementId').setStyle({color:'red'});