這個語法,用jquery-3.2.1寫報錯求解: menu.find("[href="+currentId+"]").addClass("current");
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>菜狗購物網(wǎng)</title>
<!--
? ? ? ? 作者:306607265@qq.com
? ? ? ? 時間:2017-07-18
? ? ? ? 描述:
? ? ? ? <script type="text/javascript">
//獲取classname的封裝函數(shù)
function getClass(par,cls){
var gro=par.getElementsByTagName("*");
var result=[];
for (i=0;i<gro.length;i++){
if(gro[i].className==cls){
result.push(gro[i]);
}
}
return result;
}
function hascls(obj,cls){
return? obj.className.match(new RegExp("(\\s|^)"+cls+"(\\s|$)"));
}
function removeclass(obj,cls){
if(hascls(obj,cls)){
var reg=new RegExp("(\\s|^)"+cls+"(\\s|$)")
obj.className=obj.className.replace(reg,"");
}
}
function addclass(obj,cls){
if(!hascls(obj,cls)){
obj.className+=""+cls;
}
}
window.onload=function(){
window.onscroll=function(){
var top= document.documentElement.scrollTop || document.body.scrollTop
console.log(top);
var menus=document.getElementById("menu").getElementsByTagName("a");
var items=getClass(document.getElementById("content"),"item");
var currentid="";
for(i=0;i<items.length;i++){
if(top>items[i].offsetTop-200){
currentid=items[i].id;
}else
break;
}
if(currentid){
for(j=0;j<menus.length;j++){
var _href=menus[j].href.split('#');
if(_href[_href.length-1]==currentid){
addclass(menus[j],"current");
}else{
addclass(menus[j],"current");
removeclass(menus[j],"current");
}
}
}
}
}
</script>-->
<script type="text/javascript" src="js/jquery-3.2.1.js" ></script>
<script type="text/javascript">
$(document).ready(function(){
$(window).scroll(function(){
var items=$("#content").find(".item");
var menu=$("#menu");
var currentid="";
var top=$(document).scrollTop();
items.each(function(){
if (top > $(this).offset().top - 300) {
? ? ? ? ? ? ? ? ? ? ? ? currentId = "#" + $(this).attr("id");
? ? ? ? ? ? ? ? ? ? ? ? $(".current").removeClass("current");
? ? ? ? ? ? ? ? ? ? ? ? menu.find("[href="+currentId+"]").addClass("current");
? ? ? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? ? ? ? ? }
});
});
});
</script>
<style>
* {
? ? ? ? ? ? margin: 0;
? ? ? ? ? ? padding: 0;
? ? ? ? }
? ? ? ? body {
? ? ? ? ? ? font-size: 12px;
? ? ? ? ? ? line-height: 1.7;
? ? ? ? }
? ? ? ? li {
? ? ? ? ? ? list-style: none;
? ? ? ? }
? ? ? ? #content {
? ? ? ? ? ? width: 800px;
? ? ? ? ? ? margin: 0 auto;
? ? ? ? ? ? padding: 20px;
? ? ? ? }
? ? ? ? #content h1 {
? ? ? ? ? ? color: #0088bb;
? ? ? ? }
? ? ? ? #content .item {
? ? ? ? ? ? padding: 20px;
? ? ? ? ? ? margin-bottom: 20px;
? ? ? ? ? ? border: 1px dotted #0088bb;
? ? ? ? }
? ? ? ? #content .item h2 {
? ? ? ? ? ? font-size: 16px;
? ? ? ? ? ? font-weight: bold;
? ? ? ? ? ? border-bottom: 2px solid #0088bb;
? ? ? ? ? ? margin-bottom: 10px;
? ? ? ? }
? ? ? ? #content .item li {
? ? ? ? ? ? display: inline;
? ? ? ? ? ? margin-right: 10px;
? ? ? ? }
? ? ? ? #content .item li a img {
? ? ? ? ? ? width: 230px;
? ? ? ? ? ? height: 230px;
? ? ? ? ? ? border: none;
? ? ? ? }
? ? ? ? #menu {
? ? ? ? ? ? position: fixed;
? ? ? ? ? ? top: 100px;
? ? ? ? ? ? left: 50%;
? ? ? ? ? ? margin-left: 400px;
? ? ? ? ? ? width: 50px;
? ? ? ? }
? ? ? ? #menu ul li a {
? ? ? ? ? ? display: block;
? ? ? ? ? ? margin: 5px 0;
? ? ? ? ? ? font-size: 14px;
? ? ? ? ? ? font-weight: bold;
? ? ? ? ? ? color: #333;
? ? ? ? ? ? width: 80px;
? ? ? ? ? ? height: 50px;
? ? ? ? ? ? line-height: 50px;
? ? ? ? ? ? text-decoration: none;
? ? ? ? ? ? text-align: center;
? ? ? ? }
? ? ? ? #menu ul li a:hover,
? ? ? ? #menu ul li a.current {
? ? ? ? ? ? color: #fff;
? ? ? ? ? ? background: #0088bb;
? ? ? ? }
</style>
</head>
<body>
<div id="menu">
<ul >
<li><a href="#item1">1F 男裝</a></li>
<li><a href="#item2">2F 女裝</a></li>
<li><a href="#item3">3F 美妝</a></li>
<li><a href="#item4">4F 數(shù)碼</a></li>
<li><a href="#item5">5F 母嬰</a></li>
</ul>
</div>
<div id="content">
<h1>菜狗購物網(wǎng)</h1>
<div id="item1" class="item">
<h2>1F 男裝</h2>
<ul>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
</div>
<div id="item2" class="item">
<h2>2F 女裝</h2>
<ul>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/1F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/2F.jpg" /></a>
</li>
</div>
<div id="item3" class="item">
<h2>3F 美妝</h2>
<ul>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/3F.jpg" /></a>
</li>
</div>
<div id="item4" class="item">
<h2>4F 數(shù)碼</h2>
<ul>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
<li>
<a href="#"><img src="img/4F.png" /></a>
</li>
</div>
<div id="item5" class="item">
<h2>5F 母嬰</h2>
<ul>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
<li>
<a href="#"><img src="img/5F.jpg" /></a>
</li>
</div>
</div>
</body>
</html>
2019-01-16
其實在jQuery1.8以后.size()合并成了length屬性
2017-08-02
var currentid=""; 這里定義的是小寫的i,后面字符串鏈接的時候寫的是大寫I;
2017-07-28
menu.find("[href="+currentId+"]")這里需要加上單引號:
menu.find("[href='"+currentId+"']")
2017-07-19
[href="+currentId+"] 是篩選條件,而find查找的是dom節(jié)點,你在前面加一個li就可以了。
即 li[href="+currentId+"]