为了账号安全,请及时绑定邮箱和手机立即绑定

为什么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下载
官方微信