2014-10-19 55 views
0

我想抓住一个文本旁边的一段文字,然后我可以用它的类选择一个split(" "),但是我得到一个TypeError: undefined is not a function 。我想,这是因为它不是一个字符串,所以当我尝试将其转换为字符串第一返回"[object Text]"在nextSibling返回的节点上执行拆分返回TypeError undefined不是函数

HTML:

<span class="status_abbr_inactive"> 
<figure class="planetIcon planet tooltip js_hideTipOnMobile" title="Planet"></figure>Hinata [1:28:10]</span> 

当我执行

document.getElementsByClassName("planetIcon planet tooltip js_hideTipOnMobile")[0].nextSibling 

返回"Hinata [1:28:10]",但在其上执行split()不起作用。 我在这里错过了什么?

回答

1

其实,你得到该行的代码什么是textNode

要使用包含文本的textNode你可以使用它的.textContent属性:

var text = document.getElementsByClassName("planetIcon planet tooltip js_hideTipOnMobile")[0].nextSibling.textContent; 

var splitted = text.split(' '); 
// ["Hinata", "[1:28:10]"] 
+0

这与'.nodeValue'一样好。谢谢。 – 2014-10-19 16:54:01

+0

@RicoClark请考虑标记答案是否正确,以便其他有相同问题的人可以轻松找到答案。 – 2014-10-19 16:58:04

+0

@RicoClark哦,是的,我不记得那个限制,对不起。 – 2014-10-19 17:02:45

1

因为它的一个对象 - textNode。试试这个:

alert(document.getElementsByClassName("planetIcon planet tooltip js_hideTipOnMobile")[0].nextSibling.nodeValue); 
+0

而一个textNode不是字符串。谢谢,那完美的作品。 – 2014-10-19 16:52:56