使用appendchild方法添加具有特定样式的元素

时间:2013-07-09 11:19:51

标签: javascript css dom appendchild createelement

这是我的代码:

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

它不起作用! 但是当我只写这个:

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

它有效,为什么我不能添加具有特定样式的div元素? 我的工作有什么问题? 我想使用以下命令添加一个具有特定样式的div元素,只需使用以下链接植入:

javascript://all of my code goes here

所以一定要做空。

2 个答案:

答案 0 :(得分:1)

它不起作用的原因是:

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

您将字符串"someCssStyle")传递给appendChild,而不是元素引用。 JavaScript中赋值的结果是右手值。

我不推荐它,但您可以使用the comma operator执行此操作:

(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 的牺牲品。

答案 1 :(得分: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);