【发布时间】:2016-02-16 05:43:37
【问题描述】:
基本上,我正在尝试解析 HTML 字符串并使用 Cheerio.js 提取一些信息。
我的HTML是一个follow(当然是我简化和简化的):
<html>
<head></head>
<body>
<div>
<table>
<tr>
<td>
<a href="/link_1.php">Link 1</a>
</td>
<td>
<a href="/link_2.php">Link 2</a>
<a href="/link_3.php">Link 3</a>
</td>
<td>
<a href="/link_4.php">Link 4</a>
<a href="/link_5.php">Link 5</a>
</td>
</tr>
</table>
</div>
</body>
</html>
我的代码是这个:
var cheerio = require("cheerio");
var $ = cheerio.load(html);
var page = $.root();
var tr = page.find("tr");
console.log(tr.find("> :nth-child(2) a").length);
你可以试试here。
我希望代码返回2,因为tr 元素的第二个直接子元素中有两个链接。但是,这会返回5,返回tr 中的所有链接。
我用 jQuery 尝试了同样的事情,结果应该是,see。
我还注意到删除<html> 标签可以使其正常工作,但我不知道为什么。
我是不是做错了什么,还是应该将此作为错误报告给开发人员?
编辑:我刚刚打开了an issue on GitHub。
【问题讨论】:
-
你可能想在你的错误报告中包含这个:stackoverflow.com/questions/6481612/…
标签: javascript jquery html cheerio