代码改变世界

getElementById和getElementsByTagName的区别

2016-03-17 10:38  沧海哥哥  阅读(1551)  评论(0编辑  收藏  举报

getElementById和getElementsByTagName归纳起来有五大区别:

1、getElementById获取的是单个元素对象,getElementsByTagName获取多个元素,是元素的集合,注意:不是数组。

2、对象不同,getElementById只能是document对象,而getElementsByTagName可以是任意对象。

3、getElementsByTagName使用时必须加[number],即使只有一个元素对象时。如果不加将会出错。

4、getElementsByTagName多一个length属性。

5、最需要注意,也是最难以理解的:

  getElementById不支持innerHTML动态添加元素,就是说用innerHTML动态添加的元素无法获取

  getElementsByTagName支持动态innerHTML添加元素,能获取

 

window.onload=function(){
//document.title=123;
//document.body.innerHTML='abc';
//ByTagName动态方法特性
var aBtn=document.getElementsByTagName('input');
var oBtn=document.getElementById('btn');
document.body.innerHTML='<input type="button" value="点击我"><input id="btn" type="button" value="点击我"><input type="button" value="点击我">';
//alert(aBtn.length);
aBtn[0].onclick=function(){alert(1);};
aBtn[1].onclick=function(){alert(2);};
aBtn[2].onclick=function(){alert(3);};
alert(oBtn.length);
}


代码说明:按钮的点击事件可以添加成功,但是oBtn.length无法弹出,说明document.getElementById('btn')没有获取到,而document.getElementsByTagName('input')可以获取到。