热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

document.createElement()

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

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



var


inputObj    


=


document.createElement



     (


"




"


readonly >


"


);



但是这样的情况在ff下是不兼容的。


还有就是特别注意input元素的创建:与 input 有关的元素有很多,比如:checkbox、radio、submit、reset...,因此创建 input 是个很特殊的用法。

创建不同的 input 正确的做法是:


<


div id


=


"


board


"


>


div


>










<


script type


=


"


text/Javascript


"


>

















script


>


针对 input

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

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


总结:



  • 针对非 input 元素,各浏览器中,既可以把对元素属性的改变写在显示元素(insertBefore 或 appendChild)之前,也可以在其后。


  • 针对 input 元素,为了兼容 IE,type 属性写在显示元素(insertBefore 或 appendChild)之前,其它属性写在其后。


推荐:



  • 除了 input 元素的 type 属性写在显示元素(insertBefore 或 appendChild)之前外,其它属性都写在显示元素之后。


  • 改变属性时,对写在显示元素(insertBefore 或 appendChild)之前的用 createElement 的返回值,对写在显示元素之后的用 insertBefore 或 appendChild 的返回值。








  1. var




    echkbox=document.createElement(



    "input"



    );   





  2. echkbox.setAttribute(



    "type"



    ,



    "checkbox"



    );   




  3. echkbox.setAttribute(



    "id"



    ,



    "inputid"



    );   




  4. echkbox.setAttribute(



    "name"



    ,



    "inputname"



    );   




  5. echkbox.setAttribute(



    "value"



    ,



    "inputvalue"



    );   






  6. var




    addhere=document.getElementById(



    "someElementId"



    );   




  7. addhere.appendChild(echkbox);   




  8. echkbox.setAttribute(



    "checked"



    ,



    "checked"



    );   




  9. alert(document.getElementById(



    "inputid"



    ).checked);





getElementById(id)                            返回指定结点的引用


getElementsByTagName(name)       返回文档中所有匹配的元素的集合


createElement(name)                         创建指定类型的新结点


createTextNode(text)                         创建一个纯文本结点


element方法:


getAttribute(id)                                   返回指定属性的值


setAttribute(id,value)                         给属性赋值


removeAttribute(id)                           移除指定属性和它的值


getElementsByTagName(name)       返回结点内所有匹配的元素的集合


node方法:


appendChild(child)                             给指定结点添加一个新的子结点


removeChild(child)                             移除指定结点的子结点


replaceChild(newChild,oldChild)       替换指定结点的子结点


insertBefore(newChild,refChild)       在同一层级的结点前面插入新结点


hasChildNodes()                                 如果结点有子结点则返回true


node属性:


nodeName                                         以字符串的格式存放结点的名称


nodeType                                           以整型数据格式存放结点的类型


nodeValue                                          以可用的格式存放结点的值


parentNode                                        指向结点的父结点的引用


childNodes                                         指向子结点的引用的集合


firstChild                                            指向子结点结合中的第一个子结点的引用


lastChild                                             指向子结点结合中的最后一个子结点的引用




document.createElement()




推荐阅读
author-avatar
JIE9118_755
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有