0

これは私のコードです:

(a=document).getElementsByTagName('body')[0].appendChild(a.createElement('div').style.cssText="someCssStyle");

うまくいきません!しかし、これだけを書くと:

(a=document).getElementsByTagName('body')[0].appendChild(a.createElement('div'));

動作するのに、特定のスタイルで div 要素を追加できないのはなぜですか? 私の仕事の何が問題になっていますか?以下を使用して、クロムの URL 埋め込みから特定のスタイルの div 要素を追加したい:

javascript://all of my code goes here

だから短いに違いない。

4

2 に答える 2

1

機能しない理由は次のとおりです。

...appendChild(a.createElement('div').style.cssText="someCssStyle")

要素参照ではなく、文字列( "someCssStyle") を に渡しています。appendChildJavaScript での代入の結果は右側の値です。

お勧めしませんが、コンマ演算子を使用してこれを行うことができます。

(a=document).getElementsByTagName('body')[0].appendChild(d=a.createElement('div'),d.style.cssText="someCssStyle",d);

あなたのコードと上記の両方がThe Horror of Implicit Globals の餌食になることに注意してください。

またはより合理的には、関数:

(function(){var a=document,d=document.createElement('div');d.style.cssText="someCssStyle";a.getElementsByTagName('body')[0].appendChild(d)})();

...とりわけ、これはTHoIGの餌食にはなりません

于 2013-07-09T11:21:46.563 に答える
1

a.createElement('div').style.cssText="someCssStyle"

これは、関数への引数として与えられる「someCssStyle」を返し(a=document).getElementsByTagName('body')[0].appendChild(ます。したがって、div は追加されません。ここで問題がわかりますか?

div を作成し、スタイルを設定してから、ボディに追加する必要があります。このような

var div = document.createElement("div");
div.style.cssText = "someCssStyle";

document.body.appendChild(div);
于 2013-07-09T11:23:26.100 に答える