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

时间:2012-04-29 06:28:19

标签: javascript html

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

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

有没有办法使用简单的Javascript获取值jQuery no jQuery Please!

4 个答案:

答案 0 :(得分:130)

您可能想尝试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:

答案 1 :(得分:6)

由于IE8及更早版本不支持textContent,因此这是一种解决方法:

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

innerText在IE中有效。

答案 2 :(得分:0)

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

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

console.log(textContentWithHTMLTags, textContent);

innerHTMLinnerText受包括IE6在内的所有浏览器(FireFox <44除外)支持。

答案 3 :(得分:0)

实际上,您无需调用document.getElementById()函数即可访问div

您可以通过object直接使用此id

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