首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

document.createElement()方法创建控件在chorme和firefox不兼容解决办法

2012-09-19 
document.createElement()方法创建控件在chorme和firefox不兼容解决方法转自:http://blog.csdn.net/w87875

document.createElement()方法创建控件在chorme和firefox不兼容解决方法

转自:http://blog.csdn.net/w87875251l/article/details/6339639

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

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

document.createElement()方法创建控件在chorme和firefox不兼容解决办法var?inputObj????=?document.createElement
document.createElement()方法创建控件在chorme和firefox不兼容解决办法???? ("<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>
document.createElement()方法创建控件在chorme和firefox不兼容解决办法
document.createElement()方法创建控件在chorme和firefox不兼容解决办法<script type="text/javascript">
document.createElement()方法创建控件在chorme和firefox不兼容解决办法<!--
document.createElement()方法创建控件在chorme和firefox不兼容解决办法var?board?=?document.getElementById("board");
document.createElement()方法创建控件在chorme和firefox不兼容解决办法var?e?=?document.createElement("input");
document.createElement()方法创建控件在chorme和firefox不兼容解决办法e.type?=?"radio";?//紧接着上一行写
document.createElement()方法创建控件在chorme和firefox不兼容解决办法var?obj?=?board.appendChild(e);
document.createElement()方法创建控件在chorme和firefox不兼容解决办法obj.checked?=?true;
document.createElement()方法创建控件在chorme和firefox不兼容解决办法//如下写法也是正确的:
document.createElement()方法创建控件在chorme和firefox不兼容解决办法//e.checked = true;
document.createElement()方法创建控件在chorme和firefox不兼容解决办法-->
document.createElement()方法创建控件在chorme和firefox不兼容解决办法</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 的返回值。
  1. echkbox.setAttribute("value","inputvalue"); ??

热点排行