2012-10-01 103 views
-3

我想用Javascript阅读HTML标签而不使用id/class。我知道getElementById的功能。但我想知道如何阅读HTML标签,而不使用id或class,而不使用jquery。如何阅读HTML标签

+1

你是什么意思阅读?什么是所有的随机限制?你想达到什么目的? – KRyan

+1

https://developer.mozilla.org/zh-CN/docs/DOM/element.getElementsByTagName – j08691

+0

此moz文档可能对您有所帮助:http://www.quirksmode.org/dom/intro.html – scrappedcola

回答

5

的所有元素,整个DOM API是有你。

  • (element).getElementsByTagName通过标签名称获取元素。
  • (element).getElementsByClassName按类名获取元素。
  • (element).querySelector[All]获取基于CSS选择器的元素/元素。
  • (element).children获取元素的子元素。
  • (element).childNodes获取元素的子节点。

该列表依然存在。

1

您可以使用document.getElementsByTagName

var allDivsinDom = document.getElementsByTagName('div'); //Array of all divs 
    var allAnchorinDom = document.getElementsByTagName('a'); //Array of all a 
.... 

这种方式,您可以访问DOM

0

您还可以得到document.body.childNodes和每个子节点的childNodes和读取整个DOM树,就像这里:

function readHTML(node) { 
    var i, child; 
    if (node.nodeType == 1) { // only tags 
     for (i = 0 ; i < node.childNodes.length ; ++i) { 
      child = node.childNodes[i]; 
      // do something with node 
      window.console.info(child.tagName); 
      readHTML(child); 
     } 
    } 
} 
readHTML(document.body); 

以及document.getElementsByTagName之前

0

在页面的HTML标签建议的形成树;该树的根是一个名为“文档”的节点。您可以调用该节点上的方法,例如getElementById,以在树中进一步查找节点,但不一定非要。

您可以通过访问其innerHTML属性来检索任何节点(包括整个文档)的原始HTML内容。 (注意,这不会给你节点本身的HTML标记,而是它的内容,所以如果你需要这个标记,你需要得到节点的父节点的innerHTML)

如果你想读取原始整个文档的HTML,然后尝试访问document.documentElement.innerHTML,并解析你从中得到的东西。

+1

document.innerHTML是属性,而不是函数。 document.innerHTML()会出现异常 – lupatus

+0

它绝对是,谢谢:)固定。 –