使用 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')
我有一个 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')