我正在尝试getElementsByTagName("title")
然后警告其值
它试图使用innerText
它什么都不返回
示例:
<script>
var req = new XMLHttpRequest();
req.onreadystatechange=function()
{
if(req.readyState==4 && req.status==200)
{
titles = req.responseXML.getElementsByTagName("title");
for(i=0; i < titles.length; i++)
{
alert(titles[i].innerText);
}
}
}
req.open("GET","webapp/data",true);
req.send();
</script>
它只适用于我使用innerHTML,但我不明白为什么!
示例:
<script>
var req = new XMLHttpRequest();
req.onreadystatechange=function()
{
if(req.readyState==4 && req.status==200)
{
titles = req.responseXML.getElementsByTagName("title");
for(i=0; i < titles.length; i++)
{
alert(titles[i].innerHTML);
}
}
}
req.open("GET","webapp/data",true);
req.send();
</script>
答案 0 :(得分:4)
value
是“古老的Internet Explorer”方式。
正确的名称是innerText
。
答案 1 :(得分:1)
取决于浏览器,请使用textContent
textContent
仅将titles[i].textContent || titles[i].innerText
用作最终后备。
https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText
https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent
innerText
更合适,因为IE9
textContent
是一种可靠的跨浏览器方式,可以获取元素的所有HTML内容字符串。与Element.innerHTML
的区别在于textContent
将完整的HTML结构检索为字符串,而innerHTML
将从元素(及其子项)中检索节点类型3(上下文文本)。
https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML
https://developer.mozilla.org/en/docs/Web/API/Node/nodeType