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

时间:2008-04-21 15:16:00 

今天处理了一个日期选择器的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 的返回值。

标签:document.createElement,用法,js,ie
0
投稿

猜你喜欢

  • pandas按行按列遍历Dataframe的几种方式

    2023-07-04 15:36:05
  • 10个精致的导航菜单欣赏及点评

    2011-09-22 20:33:44
  • MySQL中查询的有关英文字母大小写问题的分析

    2024-01-27 05:59:47
  • 高效的SQLSERVER分页查询(推荐)

    2024-01-16 09:54:52
  • Python 实现进度条的六种方式

    2022-09-26 02:22:08
  • python标准日志模块logging的使用方法

    2022-10-29 19:08:16
  • JS简单随机数生成方法

    2024-04-19 09:56:42
  • PHP 截取字符串 分别适合GB2312和UTF8编码情况

    2023-09-30 18:02:30
  • python使用正则表达式匹配反斜杠\\遇到的问题

    2021-12-19 19:45:05
  • 100 个 Python 小例子(练习题二)

    2021-02-09 10:15:31
  • python程序的组织结构详解

    2023-06-14 12:23:09
  • ASP常见的保留字整理(变量与表名注意不能用)

    2013-06-01 19:58:01
  • wxPython学习之主框架实例

    2023-11-10 00:41:56
  • python自定义时钟类、定时任务类

    2021-02-12 12:21:37
  • 使用Python生成url短链接的方法

    2021-05-05 02:55:12
  • MySQL数据库中varchar类型的数字比较大小的方法

    2024-01-14 17:10:35
  • 老生常谈 js中this的指向

    2024-04-23 09:29:31
  • python项目对接钉钉SDK的实现

    2021-09-18 22:21:29
  • javascript自定义加载loading效果

    2024-04-27 15:23:14
  • python关于excel多个sheet的导入导出方式

    2021-03-15 04:40:19
  • asp之家 网络编程 m.aspxhome.com