我正在尝试用Cheerio嵌套每个循环,选择两次我的Cheerio选择。我之所以这样编写代码,是因为我想在进行次要选择时迭代父选择的数量。
我的每个循环第二次都找不到任何元素。我还尝试过创建一个新的cheerio $$
构造函数并将html馈入其中,但这也失败了。
$(selector1).each(function (i, el) {
j++;
// logging html is showing several p elements
console.log($(this).html());
$(this).find('p').each((k, elem) => {
// but this loop is not finding any elements
// $(elem).text() returns null
});
});
答案 0 :(得分:0)
能够使其与以下产品一起使用。无论出于什么原因,我都必须重新选择每个循环的子元素来获取其innerText。对于父元素,我只能在参数上调用text()。
const $ = cheerio.load(res);
const data = [];
$(selector1).each((i, el) => {
j++;
$(el).find('p').each((k, elem) => {
// i had to reselect $(elem) here rather than just use elem.text()
data.push({
text: $(elem).text(),
post: j
});
});
});