104

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

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

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

4

4 に答える 4

194

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を参照してください。

于 2012-04-29T11:30:13.890 に答える
13

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

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

innerTextIEで動作します。

于 2016-11-09T15:51:53.570 に答える
0

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

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

console.log(textContentWithHTMLTags, textContent);

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

于 2018-12-07T12:56:28.337 に答える
0

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

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

text = test.textContent || test.innerText;
alert(text);
于 2020-04-01T12:17:03.850 に答える