2013-10-28 111 views
1

我想從一個網站使用JavaScript提取一些數據,並有一些混淆,我從來沒有見過。問題是訪問文本的nodeValue。HTML無法訪問的DOM節點,Javascript?

表的例子是這樣的:

<td> 

" 

    SOME DATA 

       " 


</td> 

而且我不能夠達到這個數據

document.getElementsByClassName("alt-row")[20].childNodes[4].textContent[45]; 

我已經看透了一切,沒有運氣試圖循環,剛剛回國的空間... 我真的很感激這個解決方案。

感謝您提前給出的所有答案!

+0

你怎麼知道這些是正確的指數? –

回答

0

.textContent是一個字符串,不是文本節點的集合; .textContent[45]將獲得真實文本中的第46個字符。看起來你只想要.textContent

+0

感謝您的回答,以及我試過的,但我得到的是 「 」,只是一個沒有文字的空白空間。 – user2818626

+0

@ user2818626:你有沒有看過'.childNodes [4]'在你的控制檯中? (你的意思是'.children [4]'?) – Ryan

1

如果"alt-row"<tr>,那麼你需要考慮當你使用.childNodes時,你也得到了帶有行單元格的文本節點。使用.cells集合取代第五個單元格。

//      use .cells----------------v 
document.getElementsByClassName("alt-row")[20].cells[4].textContent[45]; 

然後從那裏它取決於你想用什麼textContent。不知道你爲什麼在索引45查找字符。

另外,您需要確定您使用的索引是否正確。你應該console.log()的各種值來仔細檢查。

+0

另外,有些瀏覽器不支持使用索引訪問字符串的字符。但我認爲那些相同的瀏覽器也不支持* textContent *。 : -/ – RobG

+0

@RobG:你說得對。當它到達這一點時,我可能會建議OP選擇嵌套的文本節點並獲取其數據。 '... cells [4] .firstChild.data'然後是'.charAt(45)'來獲得角色,如果這是你想要的。 –

+0

非常感謝!這解決了我的問題:) – user2818626