2014-01-27 36 views
2

我试图解析HTML字符串cheerio 我已经得到了越来越表列的索引问题Cheerio JS HTML

由于cheerio选择看起来像jQuery我tryied:

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

但与jQuery合作,但与欢呼声不

有任何想法吗?

编辑:,你问这里是HTML的例子这是一个简单的退出,但表列的数目是可以改变的

<table> 
    <tr> 
    <td>ID</td> 
    <td>Name</td> 
    <td>Age</td> 
    </tr> 
    <tr> 
     ... 
    </tr> 
</table> 
+0

你能告诉我们你的html表格吗? –

+0

是的,似乎.index()没有在cheerio中实现。 –

回答

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); 
+0

谢谢@DaveWard,它帮助了我! –

2

Cheerio的GitHub上here版本(0.17.0或更新版本),并在事实上支持.index()。在我看来,npm中的版本实际上具有相同的版本号,并不是。

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