Firefox:如果存在文档类型说明,则将其作为文档的第一个子节点,document.doctype是一个DocumentType节点,也可以通过firstChild或者childNodes[0]访问同一个节点。
Safari、Chrome、Opera:如果存在文档类型说明,则将其作为解释,但不作为文档的子节点,不会出现在childNodes中的。
11:查找元素
我有时候,我真搞不明白,IE总是在搞什么,总是想标新立异。如果系统不让自带浏览器的话,我敢说,IE的份额将会更少。
如果id和name一样的话,他也将被返回
复制代码 代码如下:
<html>
<head>
<script defer>
var item=document.getElementById("my");
item.value="SECOND";
</script>
</head>
<body>
<input type="text" value="FIRST" >
</body>
</html>
在IE中,结果变化了。
同样是IE,Id大小写不区分
复制代码 代码如下:
<html>
<head>
<script defer>
var item=document.getElementById("MY");
item.value="SECOND";
</script>
</head>
<body>
<input type="text" value="FIRST" >
</body>
</html>
不好意思,他的结果又变化了。
12:如果是自定义属性的话,item.myattributs在非IE浏览器的情况下,是无法得出正确结果的。
复制代码 代码如下:
function(item,myatt){
return item.attributes[myatt].value;
}
同样的话,设置属性应该知道怎么办吧,就是赋值呗。
复制代码 代码如下:
function(item,myatt,value){
item.attributes[myatt].value=value;
}
13:元素的子节点个数
复制代码 代码如下:
<ul>
<li>first</li>
<li>second</li>
<li>third</li>
</ul>
IE结果是3,其他浏览器是7。
Node之间的空白符,在其他浏览器是文本节点,结果就是7。如果变成这样,
复制代码 代码如下:
<ul><li>first</li><li>second</li><li>third</li></ul>
这样大家的结果都是3了。
14:创立节点问题
复制代码 代码如下:
//动态添加Element,所有的浏览器都可以实现
var newnode=document.createElement("input");
newnode.type="button";
newnode.value="sixth";
//在IE中可以还这么实现
var newnode= document.createElement("<input type=\"button\">");
15:在屏蔽右键的时候,firefox与其他的不一样,在oncontextmenu事件中。
16:还有动态添加style和script的时候,IE和其他的浏览器是不一样的。具体查查。
17:对于DOM2和DOM3,情况更复杂了。
您可能感兴趣的文章: