2013-10-28 83 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