我试过这个,但显示“未定义”。
function test() {
var t = document.getElementById('superman').value;
alert(t); }
有没有办法使用简单的Javascript获取值jQuery no jQuery Please!
答案 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);
innerHTML
和innerText
受包括IE6在内的所有浏览器(FireFox <44除外)支持。
答案 3 :(得分:0)
实际上,您无需调用document.getElementById()
函数即可访问div
。
您可以通过object
直接使用此id
:
text = test.textContent || test.innerText;
alert(text);