Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅使用javascript(无jQuery)获取div标记的文本_Javascript_Html - Fatal编程技术网

如何仅使用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:


由于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除外)的支持。

实际上,您不需要调用
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);