在jQuery/CheerioGS中如何实现类似XPath//的跳过中间元素选择功能
jQuery/Cheerio 跳过中间层级匹配元素的解决方案
核心实现方法
jQuery 和 Cheerio 原生提供了后代选择器(用空格分隔选择器),作用完全等效于 XPath 中的//语法,可以匹配任意层级的后代元素,刚好适配你需要跳过不确定的i元素的场景。
你之前使用>是直接子元素选择器,只能匹配父子相邻层级的元素,换成空格即可:
/* 正确的选择器写法 */ #squad1 > tbody > tr > td:nth-child(1) div.nomobil
用法示例(Cheerio 环境)
// 加载页面后的取值逻辑 const playerNames = [] $('#squad1 > tbody > tr > td:nth-child(1) div.nomobil').each(function (index, element) { playerNames.push($(element).text().trim()) })
选择器规则补充说明
A > B:仅匹配 A 的直接子节点中符合 B 规则的元素,中间不允许插入其他节点A B:匹配 A 所有后代节点(子、孙、重孙等任意层级)中符合 B 规则的元素,和 XPath 中A//B效果完全一致- 你尝试的
>>不属于 CSS 或 jQuery/Cheerio 的标准选择器语法,因此无法生效
内容的提问来源于stack exchange,提问作者Digital Farmer
相关产品推荐
相关产品推荐

