如何仅使用 javascript(无 jQuery)获取 div 标签的文本

IT技术 javascript html
2021-01-27 10:32:55

我试过这个,但显示“未定义”。

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

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

4个回答

您可能想尝试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 及更低版本不支持,这使得它有点难以使用。
2021-03-16 10:32:55
真的。Indead,innerHTML不要只返回问题中要求的文本内容。我将实现基于.textContent特征检测的解决方案,并为 <IE9 提供后备
2021-03-16 10:32:55
虽然是一个较旧的问题,但.textContent是当今世界更合适的答案。
2021-03-17 10:32:55
这对我帮助更大。非常感谢你。
2021-03-18 10:32:55

由于textContentIE8 及更早版本不支持,这里有一个解决方法:

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

innerText 确实在 IE 中工作。

您可以使用innerHTML(然后从 HTML 解析文本)或使用innerText.

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

console.log(textContentWithHTMLTags, textContent);

innerHTML并被innerText包括IE6在内的所有浏览器(FireFox < 44 除外)支持

实际上你不需要调用document.getElementById()函数来访问你的div.

您可以通过以下方式object直接使用它id

text = test.textContent || test.innerText;
alert(text);