使用 Cheerio 在 table 单元格内解析来自 HTML 表单的文本

Parse text from HTML form inside table cell with Cheerio

我有一个 HTML table 看起来像这样:

<tr class="row-class" role="row">
    <td>Text1</td>
    <td>
        <form method='get' action='http://example.php'> 

            <input type='hidden' name='id_num' value='ABCD123'> <!-- < I NEED THIS VALUE -->

            <button type='submit' class='btn' title='Check' ></button> 
        </form>
    </td>  
</tr>

我想获取名为 id_num. 的隐藏输入类型的值(在这个例子中我想要的值是 "ABCD123").

我尝试用 cheerio 解析代码,如下所示:

var $ = cheerio.load(body);
$('tr').each(function(i, tr){
    var children = $(this).children();

    var x       = children.eq(0);
    var id_num  = children.eq(1);

    var row = {
        "x":        x.text().trim(),     //this is correct, value is Text1
        "id_num":   id_num.text().trim() //This is empty, value is "", I want the value "ABCD123"
    };
});

但我只得到第一个值是正确的。

如何从隐藏的输入元素中获取值 id_num

谢谢。

编辑

你的 eq(1) 得到了全部 <tr>,试试这个:

$('tr').each(function(i, tr){
      var children = $(this).children('td');
      var x        = $(children[0]);
      var id_num   = $(children[1]).find("input[name='id_num']");
      var row = {
          "x":        x.text(),
          "id_num":   id_num.val()
      };
}

应该是:

$(tr).find('[name="id_num"]').attr('value')