2014-01-27 4 views
2

:힘내라 JS HTML 나는 안녕 와 내가 tryied 안녕 선택기로</p> <p>jQuery를 같이 나는 테이블 컬럼의 인덱스를 받고있어 문제 HTML 문자열을 구문 분석하려고

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

을하지만 그것을 jQuery와 함께 작동하지만 치어 리오와 함께하지 않는다

당신의 아이디어가 있습니까?

편집 : 여기에 질문 HTML의 예와 같이 그것은 간단한 테이블 만 열 수

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

테이블에 대한 html을 표시 할 수 있습니까? –

+0

네, cheerio에서는 .index()가 구현되지 않은 것 같습니다. –

답변

1

내가 힘내라 생각하지 않습니다 변경할 수 있습니다을 종료하면 해당 선택을 구현합니다. 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

GitHub의 here에 힘내라 버전 (버전 0.17.0)를 않는 사실 지원 .index()에. 실제로 말할 수있는 한 동일한 버전 번호를 가진 npm의 버전은 그렇지 않습니다.

index을 사용하려면 npm이 아닌 github에서 내려야합니다.