javascript - 使用 jQuery 将动态 CSS 添加到菜单和主页

标签 javascript jquery css asp.net-mvc

我正在添加一个类 "current_page_item"根据 url 到当前页面 <a href"">值(value)。我的主页<a href="myurl/">Home</a>所有其他人都有值(value)观,例如。 <a href="myurl/nom">Nom</a>

菜单结构是这样的

<nav id="main-menu">
   <ul id="menu-main-menu" class="menu">
     <li class="menu-item-simple-parent menu-item-depth-0">
      <a href="myurl/">Home</a>
      </li>
  <li class="menu-item-simple-parent menu-item-depth-0">
      <a href="myurl/page2">Page2</a>
      </li>
  <li class="menu-item-simple-parent menu-item-depth-0">
      <a href="myurl/page3">Page3</a>
      </li>
...................and so on
</ul></nav>

这是我到目前为止提出的脚本

    <script type="text/javascript">
        jQuery(document).ready(function () {

            var pnom = @(HttpContext.Current.Request.RequestContext.RouteData.Values["nom"]).ToLowercase();
            jQuery('ul.menu li.menu-item-simple-parent.menu-item-depth-0 a')
               .removeClass('current_page_item')
               .filter(function (index) {
                   return jQuery(this).attr('href').toLowerCase().indexOf(pnom) != -1;
               })
               .addClass('current_page_item');
        });
</script>

我的问题是如何容纳主页的空异常。我想要代码中的一个条件,尽管 pnom 值为 null,但仍会将类添加到主页。 请帮忙。

最佳答案

你可以使用

var pnom = @(HttpContext.Current.Request.RequestContext.RouteData.Values["nom"] ?? "").toLowercase();

RouteData.Values["nom"]null 或更好时设置默认值,

(function($){
    $(function () {
        var pnom = "myurl/"+"@((HttpContext.Current.Request.RequestContext.RouteData.Values["nom"] ?? "").ToString().ToLower())";
        $('ul.menu li.menu-item-simple-parent.menu-item-depth-0 a')
            .removeClass('current_page_item')
            .filter(function (index) {
            return $(this).attr('href').toLowerCase() == pnom;
        })
        .addClass('current_page_item');
    });
})(jQuery);

Jsfiddle demo

关于javascript - 使用 jQuery 将动态 CSS 添加到菜单和主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31947352/

相关文章:

javascript - 为什么 console.log() 不显示从 Object.create 继承的属性?

Jquery 条件检查是 (':hover' ) 不工作

html - 这是设置我的 div 的最佳做法吗?

CSS 组件的灵活性

css - 背景图片超过#wrap div

javascript - 在 jquery 中正确使用 $(this)

javascript - jQuery 从顶部获取当前 View 位置

javascript - 通过排队预加载图像?

javascript - 如何在所有屏幕尺寸下将字形居中对齐到页面中间

jquery - 使用 jquery 验证单选按钮?