请看代码,为什么静态是红色,动态是黑色,怎样使动态也能应用css?
用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("bodydiv");
var a=document.createElement("h1");
a.class="texta";
a.innerHTML="动态";
bodydiv.appendChild(a);
};
</script>
</head>
<body>
<!-- <p></p>
<pre><code></script> </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呢?