createElement 创建 HTML 元素

上一篇上一篇 | 下一篇下一篇发表时间:2008-2-15 10:08:25

createElement 创建 HTML 元素

createElement 创建 HTML 元素,在 IE4.0 中只能创建 img、area、option,不过在 IE5 中,我们可以创建除 frame、iframe 以外的所有元素。
语法:
oElement = document.createElement(sTag)
sTag 要创建的元素名字,如:img、select、input,字符串类型。
返回值:返回新元素的引用。
创建之后:
创建之后,我们可利用 insertBefore 或 appendChild 将元素显示在页面中。 
<div id="board"></div>

<script type="text/javascript">
<!--
var board = document.getElementById("board");
var e = document.createElement("select");
var obj = board.appendChild(e);
-->
</script>
上例中,创建一个下拉列表框,并追加到层 board 中。
创建元素后,可对元素进行进一步操作。
<div id="board"></div>

<script type="text/javascript">
<!--
var board = document.getElementById("board");
var e = document.createElement("select");
var obj = board.appendChild(e);
obj.options[0] = new Option("追加的项", "");
obj.size = 2;
//如下写法也是正确的:
//e.options[0] = new Option("追加的项", "");
//e.size = 2;

-->
</script>
创建 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 的返回值。
[本日志由 ui163 于 2008-2-15 10:08:25 编辑]
上一篇上一篇:关于DOM事件模型的两件事
下一篇下一篇:javascript 获取鼠标当前位置的通用方法
文章来自:
收藏到网摘: 收藏到QQ书签
Tags:

相关内容

网站建设导航→

相关内容

版权隐私 ┊  免责声明  ┊ 友情链接 ┊  学院地图  ┊  关于设计学院

Copyrights©2007-2008 UI163.com All Rights Reserved

 豫ICP备07501346号