2012-07-31 56 views
10

我無法獲取特定節點的內部文本。我已經添加了我正在使用的示例節點以及我提出的JavaScript。如果我將它登錄到控制檯,javascript的工作原理就是返回這個<span id="goal_left">3 goals lect</span>。如果我將innerText添加到javascript示例中,它將不會向控制檯返回任何內容。任何想法如何獲得這個文本?獲取節點的內部文本

HTML

<span id="goal_left">3 goals lect</span> 

的javascript:這些例子返回<span id="goal_left">3 goals lect</span>

document.getElementById("goal_left"); 

document.querySelectorAll("span#goal_left")[0]; 

的javascript:這些例子不返回任何

document.getElementById("goal_left").innerText; 

document.querySelectorAll("span#goal_left")[0].innerText; 

回答

26

也許最簡單的方法:

document.querySelectorAll("span#goal_left")[0].firstChild.nodeValue; 

但如果你總是希望通過querySelectorAll()返回的第一個節點,你可以簡單地使用:

document.querySelector("span#goal_left").firstChild.nodeValue; 

順便說一句,我想像實現querySelectorAll()任何瀏覽器可能實現textContent,給出:

document.querySelector("span#goal_left").textContent; 

只是提供了一個跨瀏覽器的選項:

var textProperty = 'textContent' in document ? 'textContent' : 'innerText'; 
document.getElementById('goal_left')[textProperty] 
+0

http://caniuse.com/#feat=textcontent – Vadorequest 2016-09-15 13:31:11

+0

http://caniuse.com/#feat=innertext 在IE上的實現是一樣的他們兩個,所以我懷疑這是IE11以下的跨瀏覽器 – Vadorequest 2016-09-15 13:33:06

2

innerHTML屬性可能是你在找什麼。它將元素內的HTML代碼保存爲字符串。

+0

我試過innerHTML,但它沒有返回任何東西到控制檯 – 2012-07-31 17:10:31

0

的document.getElementById( 「goal_left」)的innerHTML替代innerText屬性。

另外你可能想用jQuery來操作DOM元素,它更容易,更不容易出錯。

+0

我試過innerHTML,但它不會返回任何東西到控制檯 – 2012-07-31 17:10:42

+0

它在Chrome上爲我工作,嘗試var aa = document.getElementById(「goal_left」)。innerHTML ;和console.log(aa); – Drawyan 2012-07-31 17:13:01