zoukankan      html  css  js  c++  java
  • document.createElement方法的使用

    我们在使用createElemen方法t创建一个元素节点的时候,似乎在IE下面怎么写都可以,但切换到FF等其它浏览器却总是会报错。

      比如我们要创建一个input元素,那么在IE下,我们可以有多种写法:

    要测试某种情况,请将其它情况注释:

    <script type="text/javascript">
    //第一种,连同属性一起被创建
    var x = document.createElement("<input  type='text' size='30' />");
    //第二种,以空标签形式创建
    var x = document.createElement("<input  />");
    //第三种,以tagName形式创建
    var x = document.createElement("input ");

    document.body.appendChild(x);
    </script>

      以上3种方式在IE中均可以通行,然后再非IE核心的浏览器中(如FF,OP,SF等),前2种写法均会报错,无法正确创建这个input元素。

      标准写法为第3种,放之各浏览器而皆准。

      由于在IE中使用createElement方法创建元素节点时,该元素的属性可以一起被创建,但这在其它浏览器中是行不通的,所以我们还得通过其它的方式来创建其属性。

    创建一个带属性的元素节点的标准写法:

    <script type="text/javascript">
    var x = document.createElement("input");
    x.setAttribute("type","text");
    x.setAttribute("size","30");

    document.body.appendChild(x);
    </script>

      增加一个属性就document.setAttribute("attribute","value")一次。

      后来发现其实还可以这样来写:

    <script type="text/javascript">
    var x = document.createElement("input");
    x.type = "text";

    document.body.appendChild(x);
    </script>

      但使用这种来创建属性,好像并不是素所有的属性都能被创建,比如input的size,value,class等用这种方式就无法创建,至于具体原因我还不大清楚。所以推荐使用前面那种写法。

  • 相关阅读:
    聚类算法学习-kmeans,kmedoids,GMM
    hdu
    高仿精仿微信应用ios源码下载
    UVA 116 Unidirectional TSP 经典dp题
    [置顶] 动态规划之切割钢条
    poj
    求解printf函数?
    实现多文件上传在iOS开发中
    开源DirectShow分析器和解码器: LAV Filter
    <Win32_20>纯c语言版的打飞机游戏出炉了^_^
  • 原文地址:https://www.cnblogs.com/dunken/p/4377431.html
Copyright © 2011-2022 走看看