如何仅使用javascript(无jQuery)获取div标记的文本
我试过这个,但显示“未定义”如何仅使用javascript(无jQuery)获取div标记的文本,javascript,html,Javascript,Html,我试过这个,但显示“未定义” 是否有任何方法可以使用简单的Javascript获取值?请不要使用jQuery 您可能希望尝试textContent而不是innerHTML 给定的innerHTML将以字符串的形式返回DOM内容,而不是只返回div中的“文本”。如果您知道您的div只包含文本,但不适合每个用例,那么这很好。对于这些情况,您可能必须使用textContent而不是innerHTML 例如,考虑以下标记: <div id="test"> Some <span cl
是否有任何方法可以使用简单的Javascript获取值?请不要使用jQuery 您可能希望尝试
textContent
而不是innerHTML
给定的innerHTML
将以字符串的形式返回DOM内容
,而不是只返回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."
var node=document.getElementById('test'),
htmlContent=node.innerHTML,
//htmlContent=“一些示例文本。”
textContent=node.textContent;
//textContent=“一些示例文本。”
有关更多详细信息,请参见MDN:
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除外)的支持。实际上,您不需要调用document.getElementById()
函数来访问div
您可以通过id
直接使用此对象
:
text = test.textContent || test.innerText;
alert(text);
.textContent
在IE8及更低版本中不受支持,这使得使用.True有些困难。Indead,innerHTML
不会只返回问题中请求的文本内容。我将实现一个基于.textContent
功能检测的解决方案,该解决方案对一个较老的问题有回退功能,.textContent是当今世界更合适的答案。这对我有很大帮助。非常感谢你。
text = test.textContent || test.innerText;
alert(text);