xxx.href得到的是http:....#item1这样的地址,所以不好和之前的currentId (item1)比较,所以运用split()方法借助"#"分段,把xxx.href拆成数组,然后取数组最后一个元素,就是item1这样的字符串了,方便与currentId比较 JS中没有each用for循环,用for循环时用break跳出循环 Ps1:documentElement 和 body 相关说明: -body 是DOM对象里的body子节点,即 <body> 标签; -documentElement 是整个节点树的根节点root,即<html> 标签; 解析:DOM把层次中的每一个对象都称之为节点,就是一个层次结构,你可以理解为一个树形结构,就像我们的目录一样,一个根目录,根目录下有子目录,子目录下还有子目录。以HTML超文本标记语言为例:整个文档的一个根就是,在DOM中可以使用document.documentElement来访问它,它就是整个节点树的根节点。而body是子节点,要访问到body标签,在脚本中应该写:document.body。 Ps2: /*因为兼容性问题,要用如下的方法。使用原生方法,要注意兼容性*/ 1.var top = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop; 2.IE浏览器对getElementByClassName()方法支持较差,解决方法(粗略,在外面重新写一个方法): function getByClassName(obj,cls){ var element = document.getElementsByTagName("*"); var result = []; for (var i = 0; i < element.length; i++) { if (element[i].className == cls) { //如果有多个class这是不成立的。 result.push(element[i]); } } return result; } } Ps3:在JavaScript中获取的href是整个地址栏的完整地址,所以需要拆分(以“#”拆分)。