用obj.className直接设置链接中的className有什么弊端吗

来源:6-3 使用JS实现函数

幕布斯7328391

2016-11-16 21:57

//我的HTML一部分:
<ul id = "nav">
		<li><a class = "link active"  id = "link1" href = "#section1">1F男装</a></li><!-- 先给第一处设置active -->
		<li><a class = "link"  id = "link2" href = "#section2">2F女装</a></li>
		<li><a class = "link"  id = "link3" href = "#section3">3F美妆</a></li>
		<li><a class = "link"  id = "link4" href = "#section4">4F数码</a></li>
		<li><a class = "link"  id = "link5" href = "#section5">5F母婴</a></li>
</ul>

//js中已经获取到currentId设置导航焦点的一部分代码:
var nav = document.getElementById('nav');
		var links = document.getElementsByTagName('a');
		for (var j=0; j<links.length; j++){
			var href = links[j].href.split("#");//通过.href获取的是一大串网址 ,可用split分隔	
			var link = href[href.length-1];
			if ( link != currentId){
				links[j].className = "link";
			} else {
				links[j].className = "link active";
			}
		}
//active是焦点居中添加的class属性。


//老师的方法是添加addClass和removeClass,
//请问用className直接设置有无弊端?


写回答 关注

1回答

  • 慕粉studying
    2016-11-17 18:07:10

    在这个编码环境下是没有,如果有多个className,添加class, 要这样, links[j].className +=" "+ "link active"; 还有添加移除前都要判断是否已经存在 "link active"

网页定位导航特效

本课程讲解网页定位导航特效,仿天猫版地狗购物网,你值得拥有

71394 学习 · 504 问题

查看课程

相似问题