我尝试过这个,但是显示为“未定义”。
function test() {
var t = document.getElementById('superman').value;
alert(t); }
有没有办法使用简单的Javascript(不用jQuery)获取值?
function test() {
var t = document.getElementById('superman').value;
alert(t); }
有没有办法使用简单的Javascript(不用jQuery)获取值?
您可能想尝试使用textContent
而不是innerHTML
。
由于innerHTML
返回的是包括在div
中的DOM内容字符串,而不仅仅是文本,“text”的内容。如果您知道您的div
只包含文本,则可以使用innerHTML
。但这并不适用于所有情况。对于这些情况,您可能需要使用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获取更多细节:
因为在IE8及更早的版本中不支持 textContent
,所以这里有一个解决方法:
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
被所有浏览器支持(除了FireFox < 44),包括IE6。
实际上,您不需要调用 document.getElementById()
函数来访问您的 div
。
您可以直接使用该 id
的对象:
text = test.textContent || test.innerText;
alert(text);
.textContent
在 IE8 及以下版本中不受支持,这使得它有些难以使用。 - Blender