getElementById、getElementsByName与getElementsByTagName的用法与区别
getElementById:
语法: document.getElementById(id)
参数:id :必选项为字符串(String)
返回值:对象; 返回相同id对象中的第一个,如果无符合条件的对象,则返回 null
example:document.getElementById(“id1”).value;
getElementsByName:
语法: document.getElementsByName(name)
参数:name :必选项为字符串(String)
返回值:数组对象; 如果无符合条件的对象,则返回空数组
example:document.getElementsByName(“name1”)[0].value;
document.getElementsByName(“name1”)[1].value;
getElementsByTagName:
语法: object.getElementsByTagName(tagname) object可以是document或event.srcElement.parentElement等
参数:tagname:必选项为字符串(String)
返回值:数组对象; 如果无符合条件的对象,则返回空数组
example:document.getElementsByTagName(“p”)[0].childNodes[0].nodeValue;
document.getElementsByTagName(“p”)[1].childNodes[0].nodeValue;
注意:getElementsByName 有s在里面
document.getElementById()可以控制某个id的tag
document.getElementsByName(),返回的是一个具有相同 name 属性的元素的集合,而不是某个,注意有“s”。
而 document.getElementsByTagName() 返回的是一组相同 TAG 的元素集合。
同一个name可以有多个element,所以用document.getElementsByName(“theName”),他return 一个collection,引用的时候要指名index
var test = document.getElementsByName(‘testButton’)[0];
id那个,是唯一的
getElementsByName返回的是所有name为指定值的所有元素的集合
“根据 NAME 标签属性的值获取对象的集合。”
集合比数组要松散的多, 集合里每个子项的类型可以不同, 集合只是把某些元素放在一起作为一类来使用, 相比之下数组就严格多了, 每个子项都是统一的类型. getElementsByName, getElementsByTagName, formName.elements 这类方法所得到的结果都是集合.