我有一个标准的HTML表,但是我似乎找不到任何东西来立足并开始使用。
我的桌子是这样的:

    <div id="seriesDiv" style="margin-top: 0px;">
          <table class="tableFile2" summary="Results">
             <tbody><tr>
                <th scope="col" width="7%">Filings</th>
                <th scope="col" width="10%">Format</th>
                <th scope="col">Description</th>
                <th scope="col" width="10%">Filing Date</th>
                <th scope="col" width="15%">File/Film Number</th>
             </tr>
    <tr>
    <td nowrap="nowrap">4</td>
    <td nowrap="nowrap"><a href="/Archives/edgar/data/1087294/000120919119051031/0001209191-19-051031-index.htm" id="documentsbutton">&nbsp;Documents</a></td>
    <td class="small">Statement of changes in beneficial ownership of securities<br>Acc-no: 0001209191-19-051031 Size: 9 KB            </td>
                <td>2019-09-27</td>
             <td></td>
             </tr>
    <tr class="blueRow">
    <td nowrap="nowrap">4</td>
    <td nowrap="nowrap"><a href="/Archives/edgar/data/1087294/000120919119050363/0001209191-19-050363-index.htm" id="documentsbutton">&nbsp;Documents</a></td>
    <td class="small">Statement of changes in beneficial ownership of securities<br>Acc-no: 0001209191-19-050363 Size: 50 KB            </td>
                <td>2019-09-20</td>
             <td></td>
             </tr>


所以标准的东西-桌子,身体,TRS和TDS

我努力了

var rows = $("#seriesDiv").find("table");
console.log("in front loop ", rows.length);
for (var i = 0; rows.length; i++) {
    console.log("inside loop");
}


我尝试了:

var rows = $(".tableFile2").find("tr");
```

Can someone please show me how to do this?  I want to loop through TRs, and for each TR, I want to loop through TDs.

thank you

最佳答案

下面的代码将帮助您遍历每个tr。另外,请注意,如果只为每个“ tr”寻找“ tds”,则不会找到“ th”。因此,您还必须寻找“ ths”。请注意,以下代码仅是示例。因此,没有错误检查或数据评估之类的东西。

const cheerio = require('cheerio');
var html = `
<div id="seriesDiv" style="margin-top: 0px;">
      <table class="tableFile2" summary="Results">
         <tbody><tr>
            <th scope="col" width="7%">Filings</th>
            <th scope="col" width="10%">Format</th>
            <th scope="col">Description</th>
            <th scope="col" width="10%">Filing Date</th>
            <th scope="col" width="15%">File/Film Number</th>
         </tr>
<tr>
<td nowrap="nowrap">4</td>
<td nowrap="nowrap"><a href="/Archives/edgar/data/1087294/000120919119051031/0001209191-19-051031-index.htm" id="documentsbutton">&nbsp;Documents</a></td>
<td class="small">Statement of changes in beneficial ownership of securities<br>Acc-no: 0001209191-19-051031 Size: 9 KB            </td>
            <td>2019-09-27</td>
         <td></td>
         </tr>
<tr class="blueRow">
<td nowrap="nowrap">4</td>
<td nowrap="nowrap"><a href="/Archives/edgar/data/1087294/000120919119050363/0001209191-19-050363-index.htm" id="documentsbutton">&nbsp;Documents</a></td>
<td class="small">Statement of changes in beneficial ownership of securities<br>Acc-no: 0001209191-19-050363 Size: 50 KB            </td>
            <td>2019-09-20</td>
         <td></td>
         </tr>
`;

const $ = cheerio.load(html);

var tables = $("#seriesDiv").find("table");
var trs = $(tables).find("tr");

for ( let i = 0; i < trs.length; i++ ){
    let tds = $(trs[i]).find("td");
    let ths = $(trs[i]).find("th");
    for ( let j = 0; j < ths.length; j++ ){
      console.log($(ths[j]).text());
    }
    for ( let j = 0; j < tds.length; j++ ){
      console.log($(tds[j]).text());
    }
}

关于javascript - 如何使用cheerio枚举html表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58368553/

10-10 09:01