為什么getElementById不能寫(xiě)成getElementsById(后面的那個(gè)t后有s,而getElementsByName不能寫(xiě)成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");如果寫(xiě)成var myH=document.getElementsById("myH1");[這兩句語(yǔ)言的區(qū)別在于Element后面有個(gè)s],會(huì)報(bào)錯(cuò);而var myS=document.getElementsByName("sex");與? var myI=document.getElementsByTagName("input"),如果在Element后面沒(méi)有s,會(huì)出現(xiàn)報(bào)錯(cuò)。
這個(gè)問(wèn)題出在哪呢?
2015-11-03
getElementById 是用id選擇元素,一個(gè)id只能對(duì)應(yīng)一個(gè)元素,相當(dāng)于說(shuō)一個(gè)身份證號(hào)只能對(duì)應(yīng)一個(gè)人,所不能加s。
getElementsByName 是用元素名稱(chēng)選擇元素,一個(gè)元素名稱(chēng)可能有很多元素,取的是集合,相當(dāng)于說(shuō)一個(gè)名字可能對(duì)應(yīng)著很多人,但不確實(shí)到底有幾個(gè),要加s。
2015-11-03
getElementById 是根據(jù)ID獲取唯一的元素,即使頁(yè)面有多個(gè)相同的id也只返回第一個(gè),所以返回的結(jié)果是一個(gè)dom元素,而getElementsByName是根據(jù)name屬性來(lái)獲取元素的,頁(yè)面可以有多個(gè)name相同的元素,即使只有一個(gè)對(duì)應(yīng)的name屬性的元素,返回的結(jié)果也是一個(gè)dom元素的數(shù)組。 明顯的區(qū)別就是一個(gè)返回單個(gè)元素,所以不能加S,一個(gè)返回數(shù)組,所以必須要加S。