如何统计innerText为'Direct'的div.stops元素的出现次数
问题原因
你当前的全等匹配逻辑无法生效,大概率是目标元素的innerText首尾存在空格、换行、缩进等不可见字符,和纯字符串'Direct'不一致导致匹配失败。
解决方案
先对取到的文本做去首尾空白处理后再匹配,同时提前缓存DOM查询结果避免重复查询DOM影响性能,参考代码如下:
// 缓存所有目标元素 const stopEls = document.querySelectorAll('div.stops') let directCount = 0 stopEls.forEach(item => { // 去除首尾空白后匹配 if (item.innerText.trim() === 'Direct') { directCount++ } }) // 出现次数为2时执行指定逻辑 if (directCount === 2) { // 你的业务逻辑写在这里 }
适配特殊场景
如果仍存在匹配失败的情况,可以根据实际场景选择以下适配方案:
- 存在大小写不一致问题:统一转成小写/大写后再匹配
if (item.innerText.trim().toLowerCase() === 'direct') - 需要模糊匹配只要包含
Direct就算符合条件:if (item.innerText.includes('Direct'))
内容的提问来源于stack exchange,提问作者AlamGeer
相关产品推荐
相关产品推荐

