• 向Dom中添加元素与文本节点的属性和方法


    • inner/outerHTML,inner/outerText,textContent

        这些属性由js字符串创建,向Dom中添加节点。

    <body>
        <div id="a">aaa</div>
        <div id="b"></div>
        <div id="c"></div>
        <div id="d"></div>
        <div id="e"></div>
        <script>
            //创建strong元素与文本节点添加到Dom
            document.getElementById('a').innerHTML = '<i>AAA</i>';
            //创建strong元素替换div#b
            document.getElementById('b').outerHTML = '<strong>changed</strong>'
            //创建文本节点并更新div#c中的内容
            document.getElementById('c').textContent = 'cc';
            document.getElementById('d').innerText = 'dd';
            //创建文本节点并替换div#d
            document.getElementById('e').outerText = '<strong>bold</strong>';
            console.log(document.body.innerHTML);
        </script>
    </body>

     

    输出:

    1. <div id="a"><i>AAA</i></div>
    2. <strong>changed</strong>
    3. <div id="c">cc</div>
    4. <div id="d">dd</div>
    5. &lt;strong&gt;bold&lt;/strong&gt;

    总结:

       1)inner是在已有元素内新创建元素或文本节点 outer则是以新创建的元素或文本节点替换

       2)HTML创建的是元素和文本节点 会被浏览器自动解析为html标签 Text则被完全解释为文本 从输出5看出 添加的标签符号被转换为转义字符

       3)textContext与innerText都用来构造文本节点

    • insertAdjacentHTML/Element/Text()

        insertAdjacentHTML()方法仅在element节点上有效

    <body>
        <strong id="s">l</strong>
        <script>
            var ins = document.getElementById('s');
            //节点插入开标签之前
            ins.insertAdjacentHTML('beforebegin', '<span>h</span>');
            //开标签之后
            ins.insertAdjacentHTML('afterbegin', '<span>e</span>');
            //闭标签之前
            ins.insertAdjacentHTML('beforeend', '<span>l</span>');
            //闭标签之后
            ins.insertAdjacentHTML('afterend', '<span>o</span>');
            console.log(document.body.innerHTML);
            /*<span>h</span><strong id="s"><span>e</span>l<span>l</span></strong><span>o</span>*/
        </script>
    </body>
    • innerText  & textContent

        区别:

          1)innerText受样式影响并会触发页面重排(reflow),textContext 不会

          2)innerText由于受到样式影响不会返回隐藏元素(visibility: hidden/display: none)的文本,textContent会

        

  • 相关阅读:
    Oracle Cannot Update TOP N Issue, 请专家解答
    .NET 匿名方法的BUG,请专家解答
    那些年我们追过的SQL
    迁移至csdn
    Vuejs的一些总结
    CSS命名规范——BEM思想
    Vuejs的一些总结
    shadow-dom 浅析
    javascript 对象封装的常用方式
    JavaScript的性能优化:加载和执行
  • 原文地址:https://www.cnblogs.com/qimeng/p/6658698.html
Copyright © 2020-2023  润新知