亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么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,會出現報錯。

這個問題出在哪呢?

正在回答

2 回答

getElementById 是用id選擇元素,一個id只能對應一個元素,相當于說一個身份證號只能對應一個人,所不能加s。

getElementsByName 是用元素名稱選擇元素,一個元素名稱可能有很多元素,取的是集合,相當于說一個名字可能對應著很多人,但不確實到底有幾個,要加s。

5 回復 有任何疑惑可以回復我~
#1

WGod 提問者

瞬間懂了 謝謝
2015-11-03 回復 有任何疑惑可以回復我~

getElementById 是根據ID獲取唯一的元素,即使頁面有多個相同的id也只返回第一個,所以返回的結果是一個dom元素,而getElementsByName是根據name屬性來獲取元素的,頁面可以有多個name相同的元素,即使只有一個對應的name屬性的元素,返回的結果也是一個dom元素的數組。 明顯的區別就是一個返回單個元素,所以不能加S,一個返回數組,所以必須要加S。

2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么getElementById不能寫成getElementsById(后面的那個t后有s,而getElementsByName不能寫成getElementByName?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號