使用Cheerio从表格单元格中的HTML表单中解析文本

问题描述 投票:1回答:2

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

<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中获取值?

谢谢。

javascript html node.js html-table cheerio
2个回答
2
投票

编辑

你的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()
      };
}

1
投票

那应该是:

$(tr).find('[name="id_num"]').attr('value')
© www.soinside.com 2019 - 2024. All rights reserved.