2014-01-27 3 views
2
расслоение плотной

Я пытаюсь разобрать HTML строку с Cheerio проблема у меня есть получает индекс столбца таблицыCheerio HTML

Как Cheerio селекторов выглядеть JQuery я tryied:

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

Но это работает с jQuery, но с cheerio не

Есть ли у вас идеи?

Edit: как вы просили здесь пример HTML это бросить простую таблицу, но количество столбцов может быть изменен

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

Вы можете показать нам свой html для стола? –

+0

Да, похоже. Индекс() не реализован в 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.

Смежные вопросы