Node.js 用Cheerio嵌套每个循环选择

Node.js 用Cheerio嵌套每个循环选择,node.js,cheerio,Node.js,Cheerio,我试图用Cheerio做一个嵌套的each循环,选择我的Cheerio选择两次。我以这种方式编写代码是因为我希望在进行二次选择时迭代父选择的数量 我的第二个each循环找不到任何元素。我还尝试创建一个新的cheerio$$构造函数并将html输入其中,但也失败了 $(selector1).each(function (i, el) { j++; // logging html is showing several p elements console.log($(this

我试图用Cheerio做一个嵌套的each循环,选择我的Cheerio选择两次。我以这种方式编写代码是因为我希望在进行二次选择时迭代父选择的数量

我的第二个each循环找不到任何元素。我还尝试创建一个新的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
    });
  });

能够让它与以下各项一起工作。无论出于何种原因,我必须重新选择每个循环的子元素以获取其内部文本。对于父元素,我可以只调用参数上的文本

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
      });
    });
  });

是的,您在这些HOF中迭代js dom元素,而不是cheerio对象。比如说elem.innerText就行了HOFs是什么@高阶函数,如each、map、reduce、filter、forEach等。。。