我正在尝试使高亮类选择到我的类别:
这是我的代码:
<div id="category">
<ul>
<a href="category.php?c=electronic">
<li>Electronic</li>
</a>
<a href="category.php?c=fashion">
<li>Fashion</li>
</a>
</ul>
</div>
CSS: .selected {border-bottom:3px solid red; }
脚本:
$("#category ul a").each(function(){
if ($(this).attr("href") == window.location.href){
$(this).addClass("selected");
}
});
当我点击电子类时,它会显示高亮类。选择,但是,当URL页面将更改为category.php?c=electronic&page=2
时,问题出现了。Highlight class .selected不再显示,如何修改这个jQuery,让它再次显示?我发现JavaScript 拆分URL文章,它是否适用于这个问题?
使用。indexof代替。
var url = $(this).attr("href");
var windowURL = window.location.href;
if (windowURL.indexOf(url) != -1){
$(this).addClass("selected");
}
$("#category ul a").each(function() {
var url = $(this).attr("href");
var windowURL = "category.php?c=electronic&page=2";
console.log(windowURL, url, windowURL.indexOf(url)); // <--- see how the values change
if (windowURL.indexOf(url) != -1) {
$(this).addClass("selected");
}
});
.selected {
color: red;
border-bottom: 3px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="category">
<ul>
<a href="category.php?c=electronic">
<li>Electronic</li>
</a>
<a href="category.php?c=fashion">
<li>Fashion</li>
</a>
</ul>
</div>
您可以使用.indexof()函数检查url中字符串是否存在
这里我已经更新了你的代码:
$("#category ul a").each(function(){
if (window.location.href.indexOf($(this).attr("href")) > -1){
$(this).addClass("selected");
}
});
.selected {border-bottom:3px solid red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="category">
<ul>
<a href="category.php?c=electronic">
<li>Electronic</li>
</a>
<a href="category.php?c=fashion">
<li>Fashion</li>
</a>
</ul>
</div>