【问题标题】:Cheerio js htmlCheerio js html
【发布时间】:2014-01-27 08:04:12
【问题描述】:

我正在尝试用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>

【问题讨论】:

  • 你能给我们看看你的表格的html吗?
  • 是的,似乎 .index() 没有在cheerio中实现。

标签: jquery html cheerio


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我不认为 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);
    

    【讨论】:

    • 感谢@DaveWard,它帮助了我!
    猜你喜欢
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    相关资源
    最近更新 更多