当前位置: 首页 > 图文教程 > 网络编程 > Javascript > document.createElement()用法及注意事项

Javascript
JavaScript实现Sleep函数的代码
一个可以显示阴历的JS代码
从csdn弄下来的页面预先载入效果
键盘事件中keyCode、which和charCode 的兼容性测试
一个支持ff的modaldialog的js代码
[js+css]点击隐藏层,点击另外层不能隐藏原层
用javascript实现页面打印的三种方法
HTML-CSS群中单选引发的“事件”
一款不错的键盘密码输入js程序
限制文本字节数js代码
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
用javascript动态调整iframe高度的方法
用一段js程序来实现动画功能
javascript实现划词标记+划词搜索功能
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
禁止F5等快捷键的JS代码
在textarea文本域中显示HTML代码的方法
Javascript之文件操作
修改发贴的编辑功能

Javascript 中的 document.createElement()用法及注意事项


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 319 ::
收藏到网摘: n/a

查看关于 createElement 的文章

今天处理了一个日期选择器的ie和ff的兼容问题,本来这种情况就很难找错误,找了好久才把错误定位到js中创建元素的方法document.createElement(),这个方法在ie下支持这样创建元素

var inputObj = document.createElement("<input type='text' size='8' style='border:0px;border-bottom:2px solid #c0c0c0;' " readonly >");

但是这样的情况在ff下是不兼容的。
还有就是特别注意input元素的创建:与 input 有关的元素有很多,比如:checkbox、radio、submit、reset...,因此创建 input 是个很特殊的用法。
创建不同的 input 正确的做法是:
<div id="board"></div>

<script type="text/javascript">
<!--
var board = document.getElementById("board");
var e = document.createElement("input");
e.type = "radio"; //紧接着上一行写
var obj = board.appendChild(e);
obj.checked = true;
//如下写法也是正确的:
//e.checked = true;
-->
</script>

针对 input,在 Netscape、Opera 和 Firefox 中 e.type 既可以在 appendChild 之前,也可以在其之后。但在 IE 中 type 属性必须在前,其它属性必须在后。

IE 创建元素,还有一个特点,就是可以连同属性一同创建,比如:var e = document.createElement("<input type='radio' name='r' value='1' />"); 这在其它浏览器中是不行的,所以我们也不支持。

总结:
针对非 input 元素,各浏览器中,既可以把对元素属性的改变写在显示元素(insertBefore 或 appendChild)之前,也可以在其后。
针对 input 元素,为了兼容 IE,type 属性写在显示元素(insertBefore 或 appendChild)之前,其它属性写在其后。

推荐:
除了 input 元素的 type 属性写在显示元素(insertBefore 或 appendChild)之前外,其它属性都写在显示元素之后。
改变属性时,对写在显示元素(insertBefore 或 appendChild)之前的用 createElement 的返回值,对写在显示元素之后的用 insertBefore 或 appendChild 的返回值。