zoukankan      html  css  js  c++  java
  • createElement【转】

    原文:http://www.cftea.com/c/2007/01/6344G8TRJHVCQ2PD.asp

    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 的返回值。
  • 相关阅读:
    python_ 学习笔记(hello world)
    python_ 学习笔记(运算符)
    MySQL-联合查询
    MySQL-date和datetime
    python_ 学习笔记(基本数据类型)
    python_ 学习笔记(基础语法)
    Visaul Studio 常用快捷键的动画演示
    IIS日志-网站运维的好帮手
    浅谈反射机制
    SQL Server 数据库优化文章
  • 原文地址:https://www.cnblogs.com/myssh/p/1640986.html
Copyright © 2011-2022 走看看