Jquery活动页面链接

时间:2012-12-23 12:34:29

标签: javascript jquery css

我需要一些关于这个代码的帮助我上网了

$(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;
}

3 个答案:

答案 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

里面