cheerio获取一个元素中的文本但不包括子标签内的文本

图片描述

var cheerio = require("cheerio");
var $= cheerio().load(html);
var text = $(".box").text();

如图如码,获取"目标文本",但会连"文本"也获取到。
感谢解惑!!!

阅读 10.2k
2 个回答

试试:

var cheerio = require('cheerio');
var $ = cheerio.load('<div class="box">目标文本<span>文本</span></div>');
var text = $('.box').children()[0].prev.data;
console.log(text);

感觉原生获取更好操作些,就是找到 div 子节点 nodeType 是 3 的元素
jq的话记得有个 contents 是获取子节点的,去除不是3的再去下空格


$('. box').contents().filter(function(){return this.nodeType==3}).text().trim()

大概这种思路吧,不知道有没有错好久没用jq了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏