【问题标题】:Jquery doesnt assign CSS classJquery 不分配 CSS 类
【发布时间】:2012-05-17 09:45:55
【问题描述】:

如果点击了这个,我想给一个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 项目的布局页面中的这个 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/Services(当然,因为我在另一个 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 并且我无法测试这个值,我不能在其上放置任何断点来查看它们的值。 . 如上所述,我还有另一个类似的功能,可以完美地与另一个列表的标签配合使用..

有人可以帮我吗?

谢谢。

【问题讨论】:

    标签: javascript jquery css


    【解决方案1】:
    var addr = $(this).attr("href").lastIndexOf("/") + 1;
    

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 2020-05-28
      • 1970-01-01
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 2015-11-10
      相关资源
      最近更新 更多