zoukankan      html  css  js  c++  java
  • JavaScript之向文档中添加元素和内容的方法

    一、非DOM方法添加

    1、document.write()

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script type="text/javascript">
            function insertParagrah(txt) {
                var str = "<i>";
                str += txt;
                str += "</i>";
                document.write(str);
            }
            insertParagrah("Hello World!");
        </script>
    </head>
    <body>
    
    </body>

    简单的说下:这个方法无法向特定的标签下添加内容,还有就是与MIME类型application/xhtml+xml  不兼容,虽然能实现向文档下添加内容和元素的功能,但是不是很推荐使用;

    2.innerHtml属性

    这个属性几乎所有的浏览器都支持,但是这个属性并不是W3C DOM的标准的组成部分,最重要的是这个属性Html5都支持。

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script type="text/javascript">
            window.onload = function () {
                var testdiv = document.getElementById("testdiv");
                alert(testdiv.innerHTML);
            }
        </script>
    </head>
    <body>
        <div id="testdiv">
            <p>This is<em>my</em>Content.</p>
        </div>
    </body>
    </html>

    输出i:<p>This is<em>my</em>Content.</p>;                 nnerHtml毫无细节可言,如果你想要获得ID=testdiv下的细节只能通过dom的属性和方法;

    innHtml就像一把大锤一样粗放,而标准化的DOM就像手术刀一样精细。大锤也会有大锤的用处,当你需要把一大段html加入到文档里时,显然用innerHtml更合适.innerHtml不仅支持读取,还支持写入;

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script type="text/javascript">
            window.onload = function () {
                var targetdiv = document.getElementById("targetdiv");
                targetdiv.innerHTML = "<p>This is<em>my</em>Content.</p>";
            }
        </script>
    </head>
    <body>
        <div id="targetdiv"></div>
    </body>
    </html>

    二、DOM方法添加内容

    1、createElement()

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script type="text/javascript">
            window.onload = function () {
                var para = document.createElement("p");//创建一个p标签
                var info = "nodeName:";
                info += para.nodeName;
                info += "   nodeType:";
                info += para.nodeType;
                alert(info);
            }
        </script>
    </head>
    <body>
    </body>
    </html>

    输出:nodeName:P   nodeType:1    注意:根据输出我们可以判断当使用document.createElement()方法创建出<p></p>标签时他就已经存在了,虽然这个p标签还没被添加到文档树中,这种情况称之为"文档碎片";

    2、appendChild()

    创建完我们需要创建的标签之后,就需要将创建好的标签添加到需要添加的地方,appendChild()方法就是干这个的。

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script type="text/javascript">
            window.onload = function () {
                var para = document.createElement("span");
                var testdiv = document.getElementById("testdiv");
                testdiv.appendChild(para);
            }
        </script>
    </head>
    <body>
        <div id="testdiv"></div>
    </body>
    </html>

    运行html文件,成功添加;

    3、createTextNode()

    ok,现在我们在我们需要添加标签的地方成功了的添加了标签,接下来就是往标签里面添加文本内容了,createTextNode()就是干这个的;

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script type="text/javascript">
            window.onload = function () {
                var testdiv = document.getElementById("testdiv");
                var para = document.createElement("span");
                testdiv.appendChild(para);
                var em_txt = document.createTextNode("Hello World!");
                para.appendChild(em_txt);
            }
        </script>
    </head>
    <body>
        <div id="testdiv"></div>
    </body>
    </html>

    成功添加;  注意appendChild的顺序,添加的顺序可以有很多种,你可以先把变迁和内容创建好,再向对应的容器append.顺序不同可能会影响最后的添加成败!

  • 相关阅读:
    (转)使用InfluxDB+cAdvisor+Grafana配置Docker监控
    Linux cut命令
    php 三种数组
    Linux httpd源码编译安装
    Linux yum如何下载rpm包到本地
    linux yum 工具
    windows phpstudy 本地添加自定义域名
    php.ini
    Linux rpm 查询
    linux rpm 安装和卸载
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/5730898.html
Copyright © 2011-2022 走看看