我需要一些关于这个代码的帮助我上网了
$(document).ready(function(){
jQuery(".linkbar li").each(function(){
var href = jQuery(this).find('a').attr('href');
if (href === window.location.pathname) {
$(this).addClass('current');
}
});
});
如果我这样做的话
文件撰写(HREF);
我得到“未定义”
如果我在href = jQuery(this).find('a').attr('href');
函数之前放置var .each()
,它会更改我当前类的所有链接
下面是我的HTML和CSS 我需要更改当前页面的css链接,我对Jquery / JS不太好。请向我解释问题是什么以及如何解决。
<div class ="linkbar">
<a href = "/HTS/about-us.php"><li> ABOUT US </li> </a>
<a href = "service.php"><li> SERVICES </li> </a>
<a href = "download.php"><li> DOWNLOAD </li> </a>
</div>
CSS
.linkbar li{
text-decoration:none;
float:left;
list-style-type: none;
font-size:11px;
width:auto;
padding:9px 18px 9px 18px;
}
.current{
background-color:#fecd0f;
vertical-align:center;
color:#fff;
}
答案 0 :(得分:1)
您的HTML无效。 <li>
代码必须位于<ul>
代码内。将<a>
标记放入<li>
标记以使find("a")
有效:
<ul class ="linkbar">
<li><a href = "/HTS/about-us.php">ABOUT US </a></li>
<li><a href = "service.php">SERVICES </a></li>
<li><a href = "download.php">DOWNLOAD </a></li>
</ul>
答案 1 :(得分:0)
好吧,伙计你有.find()在元素内找到你锚标签作为li标签的父母所以而不是使用它:
var href = $(this).parent('a').attr('href');
如果是这样你有这个:
<li><a href = "/HTS/about-us.php"> ABOUT US </a></li>
<li><a href = "service.php"> SERVICES </a></li>
<li><a href = "download.php"> DOWNLOAD </a></li>
仍然永远不会使用find()
,但请使用:
var href = $(this).children('a').attr('href');
答案 2 :(得分:0)
首先应该删除该类,然后添加可以引用Jquery文档的类以获取更多信息: http://api.jquery.com/addClass/
$(this).removeClass(".linkbar li").addClass('current');
你绝对应该把li标签放在ul
里面