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等用这种方式就无法创建,至于具体原因我还不大清楚。所以推荐使用前面那种写法。

  • 相关阅读:
    python3-基础11
    python3-基础10
    python3-基础9
    python3-基础8
    python3-基础7
    python3-基础6
    phaserjs 总结
    ES6总结
    移动端webview调试
    nodejs的理解
  • 原文地址:https://www.cnblogs.com/dunken/p/4377431.html
Copyright © 2011-2022 走看看