22

特定のノードの内部テキストを取得できません。私が使用しているサンプル ノードと、思いついた JavaScript を追加しました。<span id="goal_left">3 goals lect</span>コンソールにログを記録すると、JavaScriptはこれを返す限り機能します。innerTextJavaScript の例に追加すると、コンソールには何も返されません。このテキストを取得する方法はありますか?

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;
4

3 に答える 3

43

おそらく最も簡単な方法:

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

ただし、常に最初のノードを返す必要がある場合は、次のquerySelectorAll()ように単純に使用できます。

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

querySelectorAll()ちなみに、おそらく implementsを実装するブラウザは、次のようになると思いますtextContent

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

クロスブラウザオプションを提供するだけです:

var textProperty = 'textContent' in document ? 'textContent' : 'innerText';
document.getElementById('goal_left')[textProperty]
于 2012-07-31T17:07:17.127 に答える
2

innerHTMLお探しの物件があるかもしれません。要素内の HTML コードを文字列として保持します。

于 2012-07-31T17:05:56.443 に答える
-1

document.getElementById("goal_left").innerHTML の代わりに innerText を使用します。

また、DOM 要素の操作に jQuery を使用することもできます。jQuery を使用すると、はるかに簡単で、エラーが発生しにくくなります。

于 2012-07-31T17:09:47.257 に答える