2014-01-27 32 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拉下來。