zoukankan      html  css  js  c++  java
  • DOM节点中获取文本易混淆的属性

    DOM 节点中对于获取文本易混淆的属性,innerText, innerHTML, outerHTML, textContent, nodeValue。

    一个实例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>innerText 与 textContent 的区别</title>
    </head>
    <body>
        <div id="box">
            我是文本节点(第一个子节点)
            <span id="span">我是span节点的文本节点</span>
        </div>
        <script>
            var box = document.getElementById("box");
            console.log("innerHTML:" + box.innerHTML);
            console.log("outerHTML:" + box.outerHTML);        
            console.log("innerText:" + box.innerText);
            console.log("textContent:" + box.textContent);
            console.log("nodeValue:" + box.nodeValue);
            console.log("box's nodeValue of id :" + box.getAttributeNode("id").nodeValue);
        </script>
    </body>
    </html>

    结果:

    ie9 及以上版本下的结果:

    ie8 及以下版本下的结果:

    其它主流浏览器下的效果基本一致:

    从结果可知:

    1. IE8 及以下浏览器版本不支持 textContent 属性。获取的是所有文本内容,包括了空格、换行,但不包括 HTML 标签。

    2. innerHTML 只针对于 Element 对象,语法为 HTMLElementObject.innerHTML=text。它获取的是从该html开始标签到结束标签之间的全部内容,包括换行、空格,也包括 HTML 标签。

    3. Element 对象的 nodeValue 为 null。

    4. Attribute 对象的 nodeValue 为其属性值。

    区别:

    textContent: 设置或者返回指定节点的文本内容。IE8 及以下版本浏览器不支持该属性。可以用来替换 innerText。

    innerHTML: 可以用来获取、修改指定元素内的所有标签和内容(包括了 html 标签)。它只针对 HTMLElement 对象,不适用于其他节点。

    outerHTML: outerHTML属性可以获取该 DOM 元素及其后代节点所形成的序列化的 HTML 片段。把自身也显示出来了。

    innerText: 表示其节点和子节点所包含的文字。在 https://developer.mozilla.org/zh-CN/docs/Web/API/Node/innerText 中有详细的描述:

    nodeValue: 获取或设置当前节点的值。对于文档节点来说, nodeValue 返回 null. 对于 text, comment, 和 CDATA 节点来说, nodeValue 返回该节点的文本内容. 对于 attribute 节点来说, 返回该属性的属性值.

  • 相关阅读:
    使用 requests 维持会话
    使用 requests 发送 POST 请求
    使用 requests 发送 GET 请求
    requests 安装
    使用 urllib 分析 Robots 协议
    使用 urllib 解析 URL 链接
    使用 urllib 处理 HTTP 异常
    使用 urllib 处理 Cookies 信息
    使用 urllib 设置代理服务
    按单生产程序发布
  • 原文地址:https://www.cnblogs.com/xinjie-just/p/6297771.html
Copyright © 2011-2022 走看看