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,会出现报错。
这个问题出在哪呢?
getElementById 是用id选择元素,一个id只能对应一个元素,相当于说一个身份证号只能对应一个人,所不能加s。
getElementsByName 是用元素名称选择元素,一个元素名称可能有很多元素,取的是集合,相当于说一个名字可能对应着很多人,但不确实到底有几个,要加s。
getElementById 是根据ID获取唯一的元素,即使页面有多个相同的id也只返回第一个,所以返回的结果是一个dom元素,而getElementsByName是根据name属性来获取元素的,页面可以有多个name相同的元素,即使只有一个对应的name属性的元素,返回的结果也是一个dom元素的数组。 明显的区别就是一个返回单个元素,所以不能加S,一个返回数组,所以必须要加S。