如何遍历第n个未命名表的行

时间:2019-10-15 18:53:11

标签: jquery cheerio

我正在尝试使用Cheerio(类似于jQuery)来操纵看起来像这样的HTML页面:

<TABLE>
<!--- table body -->
</TABLE>
<!-- more html -->
<TABLE>
<!--- another table body -->
</TABLE>
<!-- more html -->
<TABLE>
  <TBODY>
    <TR>
      <TD>Column 1 value</TD>
      <!-- similar cols 2-5 -->
    </TR>
    <!-- more rows -->
  </TBODY>
</TABLE>
<!-- rest of page -->

也就是说,该页面上有三个TABLE元素,没有一个具有ID。我需要第三个。我只想遍历表中的行并提取每行中的第一,第三和第五个单元格。

应该很简单,对吧?但是我什至无法弄清楚如何遍历行。

const $ = Cheerio.load(html);
const third = $($("table").get(2));
third.find("tr").each((i, e) => {
  console.log(String(i));
})

这不会产生任何输出。

如果我登录的third.html()写入正确表的html。但是我什至无法计算其中的行数,更不用说深入表单元格了。我看过several other的答案,但它们都是基于根的单个选择器。我不太了解third是什么数据类型,或者如何操作它。

1 个答案:

答案 0 :(得分:0)

Cheerio的工作方式(或多或少)与jQuery相同。因此,如果您不确定如何在Cheerio中执行某些操作,建议您查看jQuery文档。无论如何:请尝试以下方法:

$('table').eq(2).find("tr").each(function(i, row){
    console.log($(this).find('td').eq(0).html());
    console.log($(this).find('td').eq(2).html())
    console.log($(this).find('td').eq(4).html())
});