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日

相关文章

  • Javascript Date toLocaleDateString() 方法

    以下是关于JavaScript Date对象的toLocaleDateString()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的toLocaleDateString()方法 JavaScript的toLocaleDateString()方法返回一个表示对象日期部分的本地化字符串,该字符串格式根据本地化设置定。该方法可以接受一个或…

    JavaScript 2023年5月11日
    00
  • 详解nuxt路由鉴权(express模板)

    下面我来详细讲解“详解nuxt路由鉴权(express模板)”的完整攻略。 什么是nuxt路由鉴权 nuxt是基于Vue.js的应用框架,而路由鉴权是指在用户访问某些路由前,需要进行身份验证,以保障路由的安全性与保密性。nuxt路由鉴权就是在nuxt框架中实现路由鉴权的一种方法。 实现nuxt路由鉴权的步骤 下面是实现nuxt路由鉴权的具体步骤: 步骤一:创…

    JavaScript 2023年6月11日
    00
  • js与jQuery实现的兼容多浏览器Ajax请求实例

    针对“js与jQuery实现的兼容多浏览器Ajax请求实例”这一主题,我将提供以下完整攻略: 步骤1:引入jQuery库到你的项目中 使用jQuery库的最简单方式是从官网下载或链接CDN,并在你的项目中引入。以下是引入jQuery的示例代码: <!DOCTYPE html> <html> <head> <title…

    JavaScript 2023年6月11日
    00
  • js中常见切割截取字符串的几种方法小结

    JS中常见切割截取字符串的几种方法小结 字符串是Web开发中不可或缺的一部分,而JavaScript(简称JS)中提供了许多操作字符串的方法。其中,切割和截取字符串在实际开发中非常常见。本文就来介绍一下JS中常见的切割和截取字符串的几种方法。 slice() slice(start, end) 方法可以从一个字符串中提取一个子字符串,并返回新的字符串。该方法…

    JavaScript 2023年5月28日
    00
  • 网页中JS函数自动执行常用三种方法

    网页中JS函数自动执行是常见的需求之一,本文将详细讲解JS函数自动执行的常用三种方法。 方法一:window.onload window.onload是一个最为常见的JS函数自动执行方法,它会在页面内容完全加载后触发,只有当页面所有资源(包括图片、CSS、JS等)都加载完成后,才会触发该事件。因此,可以通过window.onload执行JS函数的方式来保证页…

    JavaScript 2023年5月27日
    00
  • JS 密码强度校验的正则表达式(简单且好用)

    下面是详细讲解“JS 密码强度校验的正则表达式(简单且好用)”的完整攻略。 1. 背景和需求 现在几乎所有的网站都需要用户进行注册和登录操作,为了保障用户账号的安全,往往都需要在密码设置时进行一定的限制和校验,例如要求密码长度不少于6位,必须包含数字、字母和特殊字符等。 这时候,就可以使用正则表达式来进行密码强度的校验。而在实际应用中,可以针对不同的强度要求…

    JavaScript 2023年6月10日
    00
  • 事件冒泡是什么如何用jquery阻止事件冒泡

    事件冒泡是指在页面元素上触发一个事件后,这个事件会依次从当前元素向上层祖先元素进行传递和执行处理的过程。 如何用jQuery来阻止事件冒泡呢?可以使用stopPropagation方法,它能够阻止事件继续向上层元素传播。 下面是一个示例,在这个示例中,我们有三个div元素,分别是嵌套的关系。我们给每个div元素都绑定了click事件,当点击最后一个div元素…

    JavaScript 2023年6月11日
    00
  • JavaScript构造函数举例详解

    JavaScript构造函数举例详解 一、什么是构造函数? 构造函数是一种特殊的函数,用于创建特定类型的对象。构造函数可以被调用以创建新的对象。 二、如何创建构造函数? 使用function关键字以及大驼峰式命名,例如: function Person(name, age) { this.name = name; this.age = age; this.s…

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