想要鼠标悬停,li标签变色

var ps= document.getElementById("navigation").getElementsByTagName("li");
        for (var i in ps) {
            ps[i].onmouseover = function () {
                this.setAttribute("class","active");
            }
            ps[i].onmouseout = function () {
                this.removeAttribute("class");
            }
        }

结果浏览器报错
在这里插入图片描述

后来发现是script标签放在了head中,如果没有设置window.onload,那么JS在html加载之前就会被解析,相应的就取不到html中的元素了。

<script>
	window.onload = function () {
		var ps= document.getElementById("navigation").getElementsByTagName("li");
		 for (var i in ps) {
          	 ps[i].onmouseover = function () {
          		this.setAttribute("class","active");
         	 }
         	 ps[i].onmouseout = function () {
          		 this.removeAttribute("class");
        	 }
     	 }
	}
</script>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐