2017-08-07 54 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

但元素確實有標籤名稱。 –