建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

分析createElement在各浏览器中有何不同

时间:2011-03-30 14:59来源: 作者: 点击:
createElement在各浏览器中有何不同?本文详细为你介绍。我们在使用createElemen方法t创建一个元素节点的时候,似乎在IE下面怎么写都可以,但切换到FF等其它浏览器却总是会报错。   比如我们要创建一个input元素,那么在IE下,我们可以有多种写法: 要测试某种情况,请将
createElement在各浏览器中有何不同?本文详细为你介绍。我们在使用createElemen方法t创建一个元素节点的时候,似乎在IE下面怎么写都可以,但切换到FF等其它浏览器却总是会报错。

  比如我们要创建一个input元素,那么在IE下,我们可以有多种写法:

要测试某种情况,请将其它情况注释:

<script type="text/javascript">
//第一种,连同属性一起被创建
var x = document.createElement("<input  type='text' size='30' />");
//第二种,以空标签形式创建
var x = document.createElement("<input  />");
//第三种,以tagName形式创建
var x = document.createElement("input ");

document.body.appendChild(x);
</script>

  以上3种方式在IE中均可以通行,然后再非IE核心的浏览器中(如FF,OP,SF等),前2种写法均会报错,无法正确创建这个input元素。

  标准写法为第3种,放之各浏览器而皆准。

  由于在IE中使用createElement方法创建元素节点时,该元素的属性可以一起被创建,但这在其它浏览器中是行不通的,所以我们还得通过其它的方式来创建其属性。

创建一个带属性的元素节点的标准写法:

<script type="text/javascript">
var x = document.createElement("input");
x.setAttribute("type","text");
x.setAttribute("size","30");

document.body.appendChild(x);
</script>

  增加一个属性就document.setAttribute("attribute","value")一次。

  后来发现其实还可以这样来写:

<script type="text/javascript">
var x = document.createElement("input");
x.type = "text";

document.body.appendChild(x);
</script>

  但使用这种来创建属性,好像并不是素所有的属性都能被创建,比如input的size,value,class等用这种方式就无法创建,至于具体原因我还不大清楚。所以推荐使用前面那种写法。



(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片