为什么innerTEXT不能与节点一起使用?

时间:2016-04-30 19:02:41

标签: javascript

我正在尝试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>

2 个答案:

答案 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