欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

吃药! IEJavaScriptFirefoxXMLHTML 

程序员文章站 2022-07-06 15:40:24
...
  “吃药”是一句上海话,就类似于“被晃掂”的意思。
 
  大家先看看这段代码:
<div id="a">
</div>
<script type="text/javascript">
var node=document.createElement("div");
node.setAttribute(
"class","test");
var tn=document.createTextNode("Test1");
node.appendChild(tn);
var a=document.getElementById("a");
a.appendChild(node);
</script>
  它在FireFox里能够正确运行,一个class为test的div,被正确的显示出来了。但是在IE里面,死活就是不行。
 
  后来我才知道,不能用setAttribute,而是得用setAttributeNode。
 
<div id="a">
</div>
<script type="text/javascript">
var node=document.createElement("div");
var attr=document.createAttribute("class");
attr.value
="test";
node.setAttributeNode(attr);
var tn=document.createTextNode("Test1");
node.appendChild(tn);
var a=document.getElementById("a");
a.appendChild(node);
</script>

 

  犀牛书里是这么说的:“通常,用setAttribute()方法,比用setAttributeNode()简单。但是,要为XML文档定义一个性质包含实体引用的性质时,应该使用setAttributeNode()方法。”

  什么叫XML文档呀?什么叫性质包含实体引用的性质呀?反正我在IE里,搞搞HTML文档,就是出不来,用了setAttributeNode,就成功了。

 

  所以,我“吃了犀牛书的药”了。