我试过这个,但显示“未定义”。如何才能得到一个div标签的文本只使用JavaScript(没有jQuery)
function test() {
var t = document.getElementById('superman').value;
alert(t); }
有什么方法可以使用简单的Javascript获取值没有jQuery请!
我试过这个,但显示“未定义”。如何才能得到一个div标签的文本只使用JavaScript(没有jQuery)
function test() {
var t = document.getElementById('superman').value;
alert(t); }
有什么方法可以使用简单的Javascript获取值没有jQuery请!
您可能会想尝试textContent
而不是innerHTML
。
鉴于innerHTML
将返回DOM内容作为String
而不仅仅是div
中的“文本”。如果您知道您的div
仅包含文本,但在每个用例中都不适用,那很好。对于这些情况,你可能不得不使用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更多详情:
因为textContent
不支持IE8及以上,这里是一个解决办法:
var node = document.getElementById('test'),
var text = node.textContent || node.innerText;
alert(text);
innerText
确实在IE工作。
“.textContent”在IE8及更低版本中不受支持,这使得它有点难以使用。 – Blender 2012-04-29 23:08:50
是的。 Indead,“innerHTML”不会仅返回问题中请求的文本内容。我会实施一个基于'.textContent'功能检测的解决方案,其回退为
dhar
2012-05-02 20:56:58
尽管这是一个较老的问题,但_.textContent_是当今世界更为合适的答案。 – Donovan 2014-04-07 18:55:21