javascriptのみ(jQueryなし)を使用してdivタグのテキストを取得するにはどうすればよいですか?


92

私はこれを試しましたが、「未定義」を示しています。

function test() {
var t = document.getElementById('superman').value;
alert(t); }

単純なJavascriptを使用して値を取得する方法はありますか?jQueryを使用しないでください!

回答:


162

textContent代わりに試してみることをお勧めしますinnerHTML

GiveinnerHTMLは、DOMコンテンツを、だけStringでなく、の「テキスト」として返しますdivdivテキストのみが含まれていることがわかっている場合は問題ありませんが、すべてのユースケースに適しているとは限りません。そのような場合は、おそらくtextContent代わりにを使用する必要がありますinnerHTML

たとえば、次のマークアップを検討します。

<div id="test">
  Some <span class="foo">sample</span> text.
</div>

次の結果が得られます。

var node = document.getElementById('test'),

htmlContent = node.innerHTML,
// htmlContent = "Some <span class="foo">sample</span> text."

textContent = node.textContent;
// textContent = "Some sample text."

詳細については、MDNを参照してください。


.textContentIE8以下ではサポートされていないため、使いにくいです。
Blender

2
本当。インデッド、innerHTML質問で要求されたテキストコンテンツのみを返さないでください。.textContent<IE9のフォールバックを使用した特徴検出に基づくソリューションを実装します
dhar 2012年

4
古い質問ですが、.textContentは今日の世界にとってより適切な答えです。
ドノヴァン

これは私をもっと助けてくれます。どうもありがとうございました。
LogoS 2015

9

textContentIE8以前ではサポートされていないため、回避策は次のとおりです。

var node = document.getElementById('test'),
var text  = node.textContent || node.innerText;
alert(text);

innerText IEで動作します。


0

を使用するかinnerHTML(HTMLからテキストを解析する)、またはを使用できますinnerText

let textContentWithHTMLTags = document.querySelector('div').innerHTML; 
let textContent = document.querySelector('div').innerText;

console.log(textContentWithHTMLTags, textContent);

innerHTMLinnerTextを含む(FireFoxの<44を除く)すべてのブラウザでサポートされていIE6


0

実際にはdocument.getElementById()、にアクセスするために関数を呼び出す必要はありませんdiv

これは次の方法でobject直接使用できますid

text = test.textContent || test.innerText;
alert(text);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.