JavaScript:createElement

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 的返回值。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值