javascript DOM新增加元素为什么不能应用css样式

请看代码,为什么静态是红色,动态是黑色,怎样使动态也能应用css?


<br> .texta<br> {<br> color:#ff0000;<br> }<br>
<br> window.onload=function () {<br> var bodydiv=document.getElementById(&quot;bodydiv&quot;);<br> var a=document.createElement(&quot;h1&quot;);<br> a.class=&quot;texta&quot;;<br> a.innerHTML=&quot;动态&quot;;<br> bodydiv.appendChild(a);<br> };</p> <pre><code>&lt;/script&gt; </code></pre> <p></head><br> <body><br> <div class="bodydiv" id="bodydiv"><br> <h1 class="texta">静态</h1><br> </div><br> </body><br> </html></p>

用jquery试试吧,建议下次提问整理一下代码。

下面的我亲测可用。

 <html>
 <head>
    <title>test</title>
<meta charset="UTF-8"/>
<style type="text/css">
     .texta
 {
 color:#ff0000;
 }
 </style>
 <script type="text/javascript">
 window.onload=function () {
     var bodydiv=document.getElementById(&quot;bodydiv&quot;);
    var a=document.createElement(&quot;h1&quot;);
    a.class=&quot;texta&quot;;
    a.innerHTML=&quot;动态&quot;;
    bodydiv.appendChild(a);
 };
 </script>
 </head>
 <body>

  <!-- <p></p> 
  <pre><code>&lt;/script&gt; </code></pre> 
  <p><br /> <br /> </p> -->
  <div class="bodydiv" id="bodydiv">

   <h1 class="texta">静态</h1>

  </div>


  <p></p>
 </body>
</html>

因为你的方法错了。
a.class="texta";
改为
a.className ="texta";
是不是见证奇迹了?


 a.className = "texta";

建议去看一下浏览器工作原理,从请求到最终内容显示都经历了什么。其中有两个关键点1,html结构性文档载入到浏览器中会被转换成一个dom树,。2,css
样式文件会与dom树一起拼装成渲染数(可以理解为王树上添加各种装饰品,给树化妆)。经历了这两个过程后,浏览器会调用后台ui进行布局与绘制。
当这棵树发生改变时会进行什么动作呢?有可能是repaint(重绘,局部样式构造),reflow回流(整体或者全局样式变更)。如作者动态添加节点是会
引起以上两个机制中的一个的,具体是什么还要具体分析(比如浏览器类型)。这是基础性知识,也可以说是废话,作者所提的那个问题楼上已经给出答案了,但是为什么是ClassName呢,这个也是有原因的,楼主可以好好问一下度娘。比如font-weight 在脚本中为什么要去掉中间划线,而使用

fontWeight呢?