JSDOM如何在forEach循环中获取嵌套在li内的a标签文本内容
问题修正方案
你现有代码的核心问题是DOM元素实例不存在getElement()方法,替换为标准DOM查询方法读取a标签文本即可,调整后代码如下:
dom.window.document.querySelectorAll('#mydiv > ul > li').forEach(item => { // 获取当前li下的a标签 const aEle = item.querySelector('a'); // JSDOM中推荐用textContent读取文本,trim可以去掉多余空格 const aText = aEle.textContent.trim(); console.log(aText); // 依次输出 TextA、TextB、TextC、TextD });
如果你需要把所有文本收集为数组,可以用更简洁的写法:
const textArr = Array.from(dom.window.document.querySelectorAll('#mydiv li a')) .map(ele => ele.textContent.trim()); console.log(textArr); // 输出 ['TextA', 'TextB', 'TextC', 'TextD']
内容的提问来源于stack exchange,提问作者Mukil Deepthi
相关产品推荐
相关产品推荐

