JS.getTextContent(element,preformatted)使用介绍

JS.getTextContent(element,preformatted)使用介绍

简介

JS.getTextContent(element,preformatted) 是一个JS函数,用于获取元素中的文本内容。该函数常用于网页数据爬取、文本处理等场景。

该函数包含两个参数,分别为 element 和 preformatted。其中,element 是需要获取文本内容的元素;preformatted 是一个可选参数,用于指定文本是否为格式化后的文本,如果设置为 true,则表示获取的文本是格式化后的文本。

函数原型

function getTextContent(element, preformatted) {
    if (typeof element === 'string') {
        element = document.querySelector(element);
    }
    if (element === null) {
        return '';
    }
    var textContent = '';

    function traverse(node) {
        var childNodes = node.childNodes;
        for (var i = 0; i < childNodes.length; i++) {
            var child = childNodes[i];
            if (child.nodeType === Node.TEXT_NODE) {
                var text = child.textContent ||child.nodeValue ||child.text || '';
                if (preformatted) {
                    textContent += text + '\n';
                } else {
                    textContent += text.replace(/\s+/g, ' ') + ' ';
                }
            } else if (child.nodeType === Node.ELEMENT_NODE && child.nodeName !== 'SCRIPT' && child.nodeName !== 'STYLE') {
                traverse(child);
            }
        }
    }
    traverse(element);
    return textContent.trim();
}

示例

示例1

获取 id 为 content 的 div 元素中的文本内容

HTML 代码:

<div id="content">
    <p>Hello world</p>
    <ul>
        <li>list1</li>
        <li>list2</li>
    </ul>
</div>

JavaScript 代码:

var content = document.querySelector('#content');
var textContent = getTextContent(content);
console.log(textContent); // 'Hello world list1 list2'

示例2

获取格式化后的 id 为 pre 区域的文本内容

HTML 代码:

<pre id="preContent">
    <h1>Test</h1>
    <p>Hello world</p>
    <ul>
        <li>list1</li>
        <li>list2</li>
    </ul>
</pre>

JavaScript 代码:

var preContent = document.querySelector('#preContent');
var textContent = getTextContent(preContent, true);
console.log(textContent); // '\n    Test\n    Hello world\n    list1\n    list2\n'

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS.getTextContent(element,preformatted)使用介绍 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • Angular服务Request异步请求的实例讲解

    下面是关于“Angular服务Request异步请求的实例讲解”的完整攻略。 标题:Angular服务Request异步请求的实例讲解 什么是Angular服务Request? Angular服务Request是Angular框架内置的一个服务,主要用于发送异步HTTP请求。Request服务是通过Angular注入系统使用的,因此我们只需要在组件或其他服务…

    JavaScript 2023年6月11日
    00
  • javascript中关于&& 和 || 表达式的小技巧分享

    接下来我将详细讲解“JavaScript中关于&&和||表达式的小技巧分享”的完整攻略。 什么是 && 和 || 表达式? 在 JavaScript 中,&& 和 || 都是逻辑运算符。 && 表示“与”,当两个操作数都为真(truthy)时,它的结果为真。如果第一个操作数为假(falsy),则…

    JavaScript 2023年6月11日
    00
  • JavaScript日期类型的一些用法介绍

    JavaScript日期类型的一些用法介绍 Date类型的创建 Date类型可以使用new操作符创建,也可以使用字符串形式创建。以下是这两种方式分别的示例: // 使用new操作符创建Date实例 const now = new Date(); console.log(now); // 输出当前时间 // 使用字符串形式创建Date实例 const some…

    JavaScript 2023年5月27日
    00
  • js实现数组去重、判断数组以及对象中的内容是否相同

    数组去重的实现: 可以使用 Set 数据结构进行数组去重,因为 Set 对象只存储唯一的值。 let arr = [1, 1, 2, 2, 3, 3]; // 需要去重的数组 let arrUnique = […new Set(arr)]; // 使用 Set 数据结构进行去重 console.log(arrUnique); // 输出 [1, 2, 3…

    JavaScript 2023年5月27日
    00
  • JavaScript递归详述

    JavaScript递归详述 JavaScript的递归是指一个函数可以在内部调用自身。使用递归可以重复执行相同的代码块,直到满足某个条件为止。这种方式的优点是可以使代码更加简洁明了,但是需要注意的是,如果不加有效的结束条件,代码将会陷入无限循环。 1. 基本理论 递归的基本思路是将问题分成两个部分,一部分是可以解决的,另一部分则是需要进一步递归求解的。对于…

    JavaScript 2023年5月28日
    00
  • 有关JavaScript的10个怪癖和秘密分享

    有关JavaScript的10个怪癖和秘密分享 JavaScript是一门流行的编程语言,但相信大家在使用的过程中会遇到一些奇怪的行为和不为人知的秘密。本篇攻略将为你揭露JavaScript中的10个怪癖和秘密,希望能帮助你更好地理解和使用JavaScript。 1. 变量作用域 在JavaScript中,变量的作用域有全局作用域和函数作用域。当在函数内部声…

    JavaScript 2023年6月10日
    00
  • js获取事件源及触发该事件的对象

    获取事件源对象和触发该事件的对象是 Javascript 事件处理的重要操作。下面,我将为大家分享完整的攻略。 获取事件源对象 事件源对象指的是触发该事件的元素或节点。通常,我们使用 event.target、event.srcElement 等属性来获取事件源对象。 event.target:事件发生时,事件的目标节点(最深嵌套的节点)。 event.sr…

    JavaScript 2023年6月10日
    00
  • JS实现自定义状态栏动画文字效果示例

    下面是JS实现自定义状态栏动画文字效果示例的完整攻略: 1. 准备工作 首先,在HTML文件中添加一个空的div标签作为状态栏: <div id="status-bar"></div> 然后,在CSS文件中对状态栏进行样式设置,例如设置宽度、高度、边框、背景色等。为了实现动画效果,我们还需要设置状态栏为相对定位(p…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部