Jquery不会分配CSS类

时间:2012-05-17 09:45:56

标签: javascript jquery css

我想将一个类分配给一个href标签,如果他点击它,换句话说,如果一个地址在地址栏中,则为这个标签分配一个类..

我的css中有这种风格..

ul#menu li a {
padding: 10px 20px;
font-weight: bold;
text-decoration: none;
line-height: 2.8em;
color: #465c71;
}

ul#menu li a.selected {
padding: 10px 20px;
font-weight: bold;
text-decoration: none;
line-height: 2.8em;
color: #FFFFFF;
}

只改变字体颜色..

我的mvc3项目的Layout页面中的这个jquery脚本..

我有这个功能..

<script type="text/javascript">
  $(function () {
      var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
      $("#menu li a").each(function () {
      var addr = $(this).attr("href").lastIndexOf("/") + 1;
      if (addr == pgurl)
          $(this).addClass("selected");
  })
 });
 </script>

pgurl是粗体值http://local.host:81/Home/ 服务(当然,因为我使用并使用另一个jquery函数)

我有一个像这样的href链接..

<li><a href="@Url.Action("Services", "Home")">@MvcWebRole1.Resources.Shared.Layout.Services</a></li>

上面这个会生成一个链接..

<a href="/Home/Services">Services</a>

如果第一个变量与我的页面相同,我想在此标记中添加一个类...我通过firebug或类似的方法(手动添加类)按预期工作..

最后,两个变量应该具有粗体值(服务),但不在标签处添加类,我使用Visual Studio 2010并且我无法测试这些值,我不能在其上放置任何断点来查看它们的值。如上所述,我有另一个类似的功能,可以与另一个列表的标签完美配合..

有人可以帮助我吗?

感谢。

1 个答案:

答案 0 :(得分:1)

var addr = $(this).attr("href").lastIndexOf("/") + 1;

以上为number分配addr + 1。然后你继续测试这个数字等于一个字符串,所以除非你的动作是一个数字(不确定它是否可以),否则它总会失败。

也许你打算从链接中获取子字符串

 var addr = $(this).attr("href").substr($(this).attr("href").lastIndexOf("/") + 1);