2

我正在尝试用cheerio解析html字符串我遇到的问题是获取表列的索引

由于 Cheerio 选择器看起来像 jQuery,我尝试了:

$('td:contains("Name")').index();

但它适用于 jQuery,但不适用于cheerio

你们有什么想法吗?

编辑:正如您所问的,这里是一个 html 示例,它是一个简单的表格,但可以更改列数

<table>
   <tr>
     <td>ID</td>
     <td>Name</td>
     <td>Age</td>
   </tr>
   <tr>
      ...
   </tr>
</table>
4

2 回答 2

2

github 上的 Cheerio版本(版本 0.17.0)实际上支持.index(). npm 中的版本,据我所知实际上具有相同的版本号,但没有。

所以如果你想使用index,你需要从 github 上下载它,而不是通过 npm。

于 2014-07-22T19:41:56.787 回答
1

我不认为 Cheerio 实现了那个选择器。它类似于 jQuery,但只是 jQuery 完整实现的一个子集。

您可以通过执行以下操作来解决此问题:

var cheerio = require('cheerio'),
    $ = cheerio.load('<table><tr><td>ID</td><td>Name</td><td>Age</td></tr></table>');

var nameIndex = $('td').map(function(i, e) {
  if ($(this).text() === 'Name')
    return i;
})[0];

// Outputs "1" in this example.
console.log(nameIndex);
于 2014-01-27T08:59:52.327 回答