【问题标题】:Expressjs add class to li element in partialExpressjs在部分中向li元素添加类
【发布时间】:2020-08-27 02:50:11
【问题描述】:

我有这个菜单的一部分:

<ul id="submenu">
    <li><a href="/mypage/profile/<%=user[0].id  %>">Profile</a></li>
    <li><a href="/mypage/test/<%=user[0].id  %>">Test</a></li>
</ul>

还有这些路线:

app.get('/mypage/profile/:id', function(req,res,next) {
    res.render('site/mypage/cv', {
        title: 'profile'
    });
});

app.get('/mypage/test/:id', function(req,res,next) {
    res.render('site/mypage/cv', {
        title: 'test'
    });
});

如何根据单击的链接向 li 元素添加 selected 类?

【问题讨论】:

  • 你的意思是如何在你当前所在的页面上添加一个类?
  • 没错,所以如果我在个人资料页面上,我想添加例如 class="selected"。就像 &lt;li class="selected"&gt;&lt;a href="/mypage/profile/&lt;%=user[0].id %&gt;"&gt;Profile&lt;/a&gt;&lt;/li&gt;

标签: javascript node.js express


【解决方案1】:

对于这个例子,你不需要任何服务器端的东西,你可以用简单的jQuery代码来实现效果(记得在之前的页面中包含jQuery):

$(function() {
  // put the possible page titles here
  // they must be in the url also
  var possible_pages = ['profile', 'test'], 
      path = window.location.pathname,
      pattern, page, i, len;

  for (i = 0, len = possible_pages.length; i <= len; i++) {
    page = possible_pages[i];
    pattern = new RegExp(page);
    if (pattern.test(path)) {
      $('.submenu .' + page).addClass('selected');
      break;
    }
  }
});

【讨论】:

  • 并且 path.test 不是函数
  • 好的,我修好了,我很着急抱歉 :) 当然应该是pattern.test(path)。谢谢。效果很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
相关资源
最近更新 更多