2017-08-07 51 views
1

我正在学习vanilla js,并且不断出现的是我看到一些代码示例document.getElementBy ...或document.getElement( S)通过......,难道每个HTML节点都有相应的js DOM形式,其中getElementBy是指在单个节点和getElementsBy是指节点列表的情况?所有的html节点都有“getElementsBy”和getElementBy“版本吗?

+0

简而言之,是的,所有的元素有一个'getElementsBy'和'getElementBy'版本。如果所需元素没有ID,则可以使用'.getElementsByClassName','.getElementsByTagName','.getElementsByName'等。但是,元素不是节点。 –

+1

没有。但是所有元素节点都可以。 https://developer.mozilla.org/en-US/docs/Web/API/Element与https://developer.mozilla.org/en-US/docs/Web/API/Node –

+2

只要是值得的,这些API不是“香草JavaScript”,它们是“香草网络浏览器API”。它们不是JavaScript语言的一部分。 – Pointy

回答

1

主要元素从DOM API收集方法是:

  • document.getElementById('[ID]')// return小号现场HTML元素对象
  • document.getElementsByClassName('[CLASS]')//返回居住HTML集合对象
  • document.getElementsByName('[NAME]')//返回居住HTML集合对象
  • document.getElementsByTagName('[ELEMENT-TYPE]')//返回居住 HTML集合对象

and

  • document.querySelector('[CSS-SELECTOR]')//返回静态HTML元素对象
  • document.querySelectorAll('[CSS-SELECTOR]')//返回静态NodeList对象
+0

[ELEMENT]应该是[ID],如果您愿意,[ELEMENT-TYPE]应该是[TAGNAME],[QUERY]应该是[SELECTOR](或[CSS-SELECTOR])。 querySelector()返回一个Element,就像getElementById()一样,它不会返回单个元素的NodeList。 – BoltClock

+0

谢谢,@BoltClock。被抓住了。我已经更新了除TAGNAME之外的所有内容,因为当我听到被称为“标签”的元素时,我会发现胃酸倒流。 – Rounin

+0

但元素确实有标签名称。 –