继getElementById()讲的第二个获取元素的方法
最大的优势是:getElementById一次只能获取一个元素,getElementsByTagName一次获取一组元素 (详细可参考Javascript高级程序设计第4版的第409页)
TagName:标签名。getElementsByTagName('div'):获取包含 标签名为div的标签 数组
进行栗子操作:
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.onload = function () {
var oDiv = document.getElementsByTagName('div');
oDiv.style.background = 'red';
};
</script>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
运行抛出错误:
原因是因为在JS中设置样式或属性,一次只能对一个元素设置
解决方法:
用下表逐个设置
oDiv[0].style.background = 'red';
oDiv[1].style.background = 'red';
oDiv[2].style.background = 'red';
oDiv[3].style.background = 'red';
这里又涉及到如何合并的问题,要用到 “循环”
//合并
for (let i=0; i<oDiv.length; i++) {
oDiv[i].style.background = 'red';
}