如何只使用javascript获取div标签的文本(没有jQuery)

agu*_*and 76 html javascript

我试过这个,但显示"未定义".

function test() {
var t = document.getElementById('superman').value;
alert(t); }
Run Code Online (Sandbox Code Playgroud)

有没有办法使用简单的Javascript获取价值没有jQuery请!

dha*_*har 138

你可能想尝试textContent而不是innerHTML.

给定innerHTML将返回DOM内容作为一个String而不仅仅是"文本" div.如果你知道你div只包含文本但是在每个用例中都不合适,那就没问题了.对于那些情况,你可能不得不使用textContent而不是innerHTML

例如,考虑以下标记:

<div id="test">
  Some <span class="foo">sample</span> text.
</div>
Run Code Online (Sandbox Code Playgroud)

你会得到以下结果:

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

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

textContent = node.textContent;
// textContent = "Some sample text."
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅MDN:

  • 虽然是一个较老的问题,_. textContent_对于今天的世界来说是更合适的答案. (4认同)
  • 真正.Indead,`innerHTML`不会返回问题中请求的文本内容.我将实现一个基于`.textContent`特征检测的解决方案,并带有<IE9的回退 (2认同)

oab*_*rca 7

因为textContentIE8及更早版本不支持,所以这是一个解决方法:

var node = document.getElementById('test'),
var text  = node.textContent || node.innerText;
alert(text);
Run Code Online (Sandbox Code Playgroud)

innerText 确实在IE中工作.