1

私はJavaScriptスクリプトでCSSクラスのスタイルを適用または変更しており、このようにdojo f/wを持っています。

this.sidePanel = query(".sidePanel", document.body())[0];
domStyle.set(this.sidePanel, {
    height: "25%",
    top: "334px"
});

これはうまくいきましたが、似たような CSS クラスを持つノードが複数あります。クラスに新しい CSS スタイルを適用して、同じクラスを持つすべてのノードを適用したいと考えています。

ノードを照会することなく、スタイルを CSS クラスに直接変更できる dojo の機能はありますか? 何かのようなもの、

dojo.css.applyNewStyle('className', {'cssProperty': 'newValue'});
4

3 に答える 3

3

このdojo/query関数は、操作できるノードリストを返します。dojo/NodeList-domを拡張するモジュールも必要な場合はdojo/query、次のようにすることができます。

require(['dojo/query','dojo/NodeList-dom','dojo/domReady!'],function(query){
    query('.red').style('background-color','black'); 
});

これを実証するために簡単なjsfiddleを作成しました。Dojoリファレンス ガイドには、ノード リストで呼び出すことができる追加のメソッドのリストがあります。css クラスの追加も含まれます。これは、必要な場合があります (新しい css 値が動的ではなく静的である場合)。

于 2013-06-12T12:23:52.343 に答える
1

また、dojo/NodeList-dom モジュールを含めたくない場合でも、次のようにすることができます。

query(".sidePanel").forEach(function(node){ domStyle.set(node, { height: "25%", top: "334px" })});

...しかし、ええ、dojo/NodeList-dom の方が簡潔です :-)

于 2013-06-12T15:56:16.530 に答える
0

はい、方法はあるようですが、道場を使用する必要はありません。この他の投稿をチェックしてください:

JavaScript で CSS 値を変更する

于 2013-06-12T05:46:46.313 に答える