1

divPrototypeJS を使用して新しいスタイルを追加したいと考えています。しかし、次のスクリプトは機能しません。それの何が問題なのですか?

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

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

1 に答える 1

4

この$$関数は、一致するすべての要素 (存在する場合)の配列を返します。配列メソッドではなく要素メソッド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'});
于 2012-05-30T14:30:38.543 に答える