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')可以获取到。
沧海一声笑,是非恩怨了