如何在 Cheerio 中的单个
标签后获取文本

2024-01-12

我正在尝试使用 Cheerio 获取一些放置在单个文本之后的文本<br> tag.

我已经尝试过以下几行:

let price = $(this).nextUntil('.col.search_price.discounted.responsive_secondrow').find('br').text().trim();
let price = $(this).nextUntil('.col.search_price.discounted.responsive_secondrow.br').text().trim();

这是我正在尝试抓取的 HTML:

<div class="col search_price_discount_combined responsive_secondrow" data-price-final="5039">
  <div class="col search_discount responsive_secondrow">
    <span>-90%</span>
  </div>
  <div class="col search_price discounted responsive_secondrow">
    <span style="color: #888888;"><strike>ARS$ 503,99</strike></span><br>ARS$ 50,39     
  </div>
</div>

我想要获得“ARS$ 50,39”。


如果您愿意假设此文本是最后一个子元素,则可以使用.contents().last():

const cheerio = require("cheerio"); // 1.0.0-rc.12

const html = `
<div class="col search_price_discount_combined responsive_secondrow" data-price-final="5039">
  <div class="col search_discount responsive_secondrow">
    <span>-90%</span>
  </div>
  <div class="col search_price discounted responsive_secondrow">
    <span style="color: #888888;"><strike>ARS$ 503,99</strike></span><br>ARS$ 50,39     
  </div>
</div>
`;
const $ = cheerio.load(html);
const sel = ".col.search_price.discounted.responsive_secondrow";
const text = $(sel).contents().last().text().trim();
console.log(text); // => ARS$ 50,39

如果您对这个假设不满意,您可以搜索子节点以查找第一个非空文本节点:

// ...
const text = $([...$(sel).contents()]
  .find(e => e.type === "text" && $(e).text().trim()))
  .text()
  .trim();
console.log(text); // => ARS$ 50,39

如果文本节点紧跟在<br>具体标记,你可以尝试:

// ...
const contents = [...$(sel).contents()];
const text = $(contents.find((e, i) =>
    e.type === "text" && contents[i-1]?.tagName === "br"
  ))
  .text()
  .trim();
console.log(text); // => ARS$ 50,39

如果您想要所有直接文本子项,请参阅:

  • 如何在 Cheerio 中获取由不同 HTML 标签分隔的文本 https://stackoverflow.com/questions/73690939/how-to-get-a-text-thats-separated-by-different-html-tags-in-cheerio/73692854#73692854
  • Cheerio:获取普通+文本节点 https://stackoverflow.com/questions/54878673/cheerio-get-normal-text-nodes/73693773#73693773
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Cheerio 中的单个
标签后获取文本 的相关文章

  • 向下滚动时如何使图像移动?

    这是我想要实现的目标的示例 https www flambette com en https www flambette com en 我尝试过更改图像的 css 属性 但效果不能满足我的需求 我尝试过以下代码 mydocument on
  • 将字符串编码为 HTML 字符串 Swift 3

    如何快速编码字符串以删除所有特殊字符并将其替换为其匹配的 html 编号 假设我有以下字符串 var mystring This is my String That s it 然后用它的html编号替换特殊字符 38 39 gt 62 但我
  • 赋予 d3 序数轴标签与尺度名称不同

    我有一个序数scale具有不同值的某些标签 我想显示该比例的轴 其中轴标签与比例标签不同 我有这个代码 var width 1000 var height 600 var margins left 100 40 right 25 botto
  • AttachEvent 或 addEventListener - 存储在哪里?

    在 jQuery 中 如果我这样做 a click function Do something 点击事件存储在 a data events 我可以像这样获取它 jQuery each a data events function i eve
  • 使用 getElementById 在 javascript 中使用正则表达式进行 Html 表单验证?

    我想使用正则表达式验证 html 表单的示例模式 AAA 111 2222 aa 1234 目前 我的代码要么为所有输入返回 正确 要么为所有输入返回 不正确 并且我无法弄清楚我的问题出在哪里 var x document getEleme
  • 拖放图像上传在服务器上不起作用

    我正在尝试实现拖放图像上传 我在网上找到了一个相当简单的脚本并适合我的使用 在我的本地安装中 文件上传得很好 但在服务器上却不行 从我的调试尝试来看 SERVER HTTP X FILENAME 甚至没有被 php 设置 我尝试了以下方法
  • Javascript 访问 Disqus 评论文本框?

    我正在开发一个浏览器扩展 它应该允许我访问文本框中的评论 帖子 现在很多网站都使用 Disqus 作为评论方式 但在输入文本时我无法找到访问 Disqus 评论框的方法 Disqus API 也没有透露太多信息 有人知道访问它的方法吗 解决
  • jQuery 面板滑块通过单击按钮打开但不会关闭

    我的页面上有一个按钮 可以使用 jquery 和 Modernizr 框架打开右侧面板 按钮位于屏幕最右侧 单击时 它会向左滑动并打开打开的面板 问题是 再次单击时它不会滑回到原来的位置 HTML div class cd panel fr
  • IE 中的文件上传按钮和奇怪的文本光标行为

    我构建了一个上传按钮 其格式类似于典型的 html 按钮 而不是浏览器标准文件上传表单 该方法是设置锚元素的样式并在顶部覆盖透明文件输入元素 这种方法在除 IE 之外的所有浏览器中都可以正常工作 在 IE 中 当用户单击上传按钮时 会出现一
  • Django 1.7:如何使用 html/css 文件作为模板发送电子邮件

    从 Django 1 7 开始 可以send email 使用新参数 html message 不幸的是 没有关于如何使用它的全面指南 新手友好 或者至少我找不到它 我需要使发送的电子邮件变得漂亮 因此 我试图弄清楚如何将我的消息包含到 h
  • html输入数字,min + step,使step忽略min?

    是否有可能使step忽略min属性
  • Niceedit本地上传图片失败

    我是这样称呼编辑的 new nicEditor buttonList bold italic underline upload iconsPath img nicedit png uploadURI http server com inte
  • 如何让无限滚动发挥作用?

    我正在尝试让这个无限加载脚本在我的项目中工作 这是我的 HTML div div div class pagina div div class pagina div div class pagina div div class pagina
  • jQuery 显示/隐藏兄弟姐妹

    我有这段代码 旨在首先隐藏除第一个元素之外的所有相关元素 这个 做的不错啊接下来 它应该根据选择的项目显示 隐藏这些元素 但这部分不起作用 想法 jQuery accordion dl not first child hide hide a
  • Javascript 替换为正则表达式无法正常工作

    我正在尝试使用正则表达式验证名称 正则表达式阻止用户连续输入 2 个空格或点 这是我的代码 function test input var regex A Za z 0 1 s 0 1 input value input value rep
  • 在64位环境中加载32位进程

    我有以下几个问题 CHM 是 编译的 HTML 文件 我的 CHM 文件有一个启动 32 位应用程序的链接 CHM 文件是用 Javascript 编码的 这在 32 位操作系统环境中运行良好 但这在 64 位操作系统环境中不起作用 原因是
  • 网页执行回发时如何停止在注册表单上?

    我正在做我的最后一年的项目 其中 我在一页上有登录和注册表单 WebForm 当用户点击锚点时Sign Up下拉菜单ddlType 隐藏 和文本框 txtCustName txtEmail and txtConfirmPassword 显示
  • Ie11 不应用媒体查询样式

    IE11 忽略我的媒体查询并始终使用移动 CSS 奇怪的是 如果我改变浏览器宽度 即使只是 1 2 像素 浏览器也会自行渲染并显示媒体查询 我尝试了 css lint 我的 css 中没有错误 我的CSS没有什么特别的 只是简单的 css
  • 如何制作饼图聚合数据源?

    Using 适用于 ASP NET MVC 的 Kendo UI 完整版 http www kendoui com 版本 2013 3 1119 2013年11月20日 如果我有这段代码 status chart kendoChart da
  • 通过jquery ajax()和serialize()提交html表单

    我想通过 jquery ajax 提交此表单 这是我所做的 但它不起作用 即表单正在提交并刷新页面 但我没有看到响应 即在同一页面上打印数组 HTML

随机推荐

  • 带有徽标图像的 django pdf

    我使用比萨创建了发票 Pdf 文本模板 但我想在 pdf 文件中显示徽标 图像 以及文本 我不知道如何在 pdf 中显示图像 我的看法如下 def generate invoice request user id None personal
  • 在 .NET Core 中将 HTML 转换为图像

    我想在 Web 服务器上将 HTML 代码转换为图像 png jpg 然后在我的 NET Core 应用程序中通过电子邮件发送图像链接 我不想购买任何第三方库 如 NReco 或 EVo 还有其他方法可以在 dotnet core 2 0
  • 有没有一种方法可以仅使用 javascript 命令来选择图像并将其复制到剪贴板?

    我想复制图像本身而不是任何文本或相关的 src 我做了一个 jsfiddle 的例子https jsfiddle net pvuefca7 1 https jsfiddle net pvuefca7 1 您可以尝试一下 发现复制文本效果很好
  • 如何在 Formik 上实现自定义 handleChange 函数?

    在输入元素中 handleChange 函数将从 onChange 事件接收事件对象 如何为如下非输入字段创建自定义 handleChange 函数 import React from react import useFormik from
  • 如何使用 XCTest 从 iOS 13 删除/重置应用程序?

    最近我开始使用 XCTest 测试 iOS 应用程序 但我发现了一些困难 主要困难是删除或重置每个测试类中的应用程序内容 我目前正在使用 XCode 11 并尝试从 iOS 13 中为每个测试类删除 重置应用程序 我已经尝试过 通过跳板删除
  • 在 adMob 中仅显示文字广告

    我已将我的 adMob 帐户更新到新版本 我只想在我的应用中显示文字广告 我如何使用新版本的 adMob 帐户做到这一点 或者 如何在新版本的 adMob 帐户中屏蔽图片广告 这可以在您的 AdMob 帐户上完成 去 AdMob gt 获利
  • 检查是否在 mySQL 的多个列之一中找到字符串

    我需要检查是否在一列或多列中找到字符串 基本上 我有一个程序可以让你检查多个字段 姓名 姓氏等 如果同时检查姓名并且用户仅输入姓名 例如 chris 则可以很容易地在 mySQL 中使用 LIKE 参数进行检查 如下所示 select fr
  • 统一访问Web服务

    我有三个 Web 服务 它们是由三个不同的供应商开发的 并且具有不同的 URL 输入参数和输出参数 它们都是 ASMX Web 服务 它们用于从第三方关系数据库中删除记录 例如我提供一个 personID 然后一个人就会从一个系统中删除 并
  • SharePoint 错误:找不到 xxxx 的 Web 应用程序

    当我尝试执行这段代码时 SPSite siteCollection new SPSite http sp devxxx 10000 它抛出以下错误 Web 应用程序位于http sp devxxx 10000 http sp devxxx
  • 从不正确的 .Rbuildignore 文件构建后,包中的整理字段中的文件丢失

    我的包的其中一个函数在构建时拒绝添加到包源中 然后在运行 R CMD 检查时失败 我的包位于github上here https github com eshilts dc crime data 文件calculate latitude an
  • 迭代 C 数组

    我有一个在程序中某处创建的结构数组 后来 我想迭代它 但我没有数组的大小 如何迭代元素 或者我需要将尺寸存储在某处吗 如果在编译时已知数组的大小 则可以使用结构大小来确定元素的数量 struct foo fooarr 10 for i 0
  • 如何解决 Arango 查询承诺错误? [复制]

    这个问题已经存在了 我一直在尝试使用肥皂消息从 Arangodb 获取查询结果到我的前端服务 Angular 4 我能够获得查询结果 但在 console log 中打印出来 但是我如何在这个功能 Service 下获取它 这样我就可以输入
  • 如何在 React Native 中创建聊天气泡的卷曲箭头/尾部

    我目前正在用反应本机制作聊天气泡 由于我是反应原生的新手 我首先尝试在浏览器上制作聊天气泡 然后尝试在反应原生中复制相同的内容 我正在努力复制反应本机中的箭头 有什么想法 建议吗 普通 HTML CSS div p class to me
  • 使用 boost asio 进行多线程 http 处理是否需要线程?

    在Boost asio中股线文档 https www boost org doc libs 1 78 0 doc html boost asio overview core strands html它说 链可以是隐式的也可以是显式的 如以下
  • 如何确保你的计算图是可微的

    一些 Tensorflow 操作 例如tf argmax 是不可微分的 即在反向传播中不计算和使用梯度 一个答案Tensorflow 哪些操作是可微分的 哪些操作是不可微分的 https stackoverflow com question
  • Django 在模板中渲染动态图像

    在 Django 视图中 我可以生成动态图像 PNG 格式的图形 并创建一个响应 该响应是我的图形的图像 我可以让它在浏览器中显示 但没有网页 它只是图像 现在我想将此图像嵌入 HTML 模板中并渲染它 我怎样才能做到这一点 这是我的第一个
  • 在C++中如何通过向量的数据获取向量的索引?

    假设我有一个vector
  • Woocommerce 3 中的自定义模板

    我正在尝试仅为一个 ID 为 5555 的产品制作一个单独的模板 从其页面中删除照片并更改块结构 覆盖此文件会影响所有产品页面 wp content plugins woocommerce templates content single
  • 在 ASP.NET 中执行预定的后台工作

    我需要在我的 ASP NET 应用程序中定期执行某个任务 所以这样做 protected void Application Start Worker Start public static class Worker public stati
  • 如何在 Cheerio 中的单个
    标签后获取文本

    我正在尝试使用 Cheerio 获取一些放置在单个文本之后的文本 br tag 我已经尝试过以下几行 let price this nextUntil col search price discounted responsive secon