<div>
<a onclick="a_click(this);">111</a><br>
<a onclick="a_click(this);">222</a><br>
<a onclick="a_click(this);">333</a><br>
</div>
<script language="javascript">
function a_click(o) {
var as = o.parentNode.getElementsByTagName('a');
for (var i = 0; i < as.length; i++) {
as[i].style.backgroundColor = '';
}
o.style.backgroundColor = '#FF0000';
}
</script>
因为o是你点击的那个a标签对象,parentNode是获取到它的父节点
只有从它的父节点才能获取到你这所有的三个a标签,才能进行下面你这个循环语句
如有帮助,麻烦点个【采纳此答案】 谢谢啦~
这段脚本的功能是,不管点哪个,所有的一起变色
那当然不能只改变它自己的颜色
要先找到a标签的父节点,然后再查询所有的a标签,再遍历
o指的是被点击的a,parentNode是获取a的父节点也就是div
o.parentNode.getElementsByTagName('a')获取div下的所有a元素
这是我们通过parentNode获取当前被点击的a标签的父级标签也就是div然后获取div下面的所有的a标签进行遍历,然后去除所有a标签的背景颜色,然后在为当前点击的a标签设置背景颜色,从而做到点击哪个哪个变色
a_click(this)
绑定了this
,点击的参数o
就是当前点击的节点,因为需要将其它的点击颜色去掉,要获取全部节点,所以要通过父级parentNode
来获取