2014-10-19 57 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