為什么getElementById不能寫成getElementsById(后面的那個t后有s,而getElementsByName不能寫成getElementByName?
function getValue()
????????? {
????????????? var myH=document.getElementById("myH1");
????????????? alert(myH.innerHTML)
????????? }
????????? function getElements()
????????? {
????????????? var myS=document.getElementsByName("sex");
????????????? alert(myS.length);
????????? }
????????? function getTagElements()
????????? {
????????????? var myI=document.getElementsByTagName("input")
????????????? alert(myI.length);
????????? }
以上代碼var myH=document.getElementById("myH1");如果寫成var myH=document.getElementsById("myH1");[這兩句語言的區別在于Element后面有個s],會報錯;而var myS=document.getElementsByName("sex");與? var myI=document.getElementsByTagName("input"),如果在Element后面沒有s,會出現報錯。
這個問題出在哪呢?
2015-11-03
getElementById 是用id選擇元素,一個id只能對應一個元素,相當于說一個身份證號只能對應一個人,所不能加s。
getElementsByName 是用元素名稱選擇元素,一個元素名稱可能有很多元素,取的是集合,相當于說一個名字可能對應著很多人,但不確實到底有幾個,要加s。
2015-11-03
getElementById 是根據ID獲取唯一的元素,即使頁面有多個相同的id也只返回第一個,所以返回的結果是一個dom元素,而getElementsByName是根據name屬性來獲取元素的,頁面可以有多個name相同的元素,即使只有一個對應的name屬性的元素,返回的結果也是一個dom元素的數組。 明顯的區別就是一個返回單個元素,所以不能加S,一個返回數組,所以必須要加S。