我目前正在尝试使用ejs为导航栏开发部分模板文件,但是我正在努力为已经添加了类的元素添加其他类。
我尝试了2种添加附加类的方法,这是第一种:
<li class='navbar-item'<% if (pageTitle === 'Home') { %> class="active" <% } %>> <a href="/home">Home</a></li>
但是这没用,所以我决定尝试在类属性中嵌入EJS,如下所示
<li class="nav-item <% if (pageTitle === 'Home') { %> active <% } %>">
这也没有用,我确保正确提供pageTitle,因为它在网页的其他地方使用并且工作正常。
我不确定下一个阶段是什么,我考虑使用额外的JS文件,但这似乎反效果,因为我已经能够将JS嵌入到HTML中。
任何帮助表示赞赏,提前谢谢。
使用像这样的条件运算符可以让您的生活更轻松
<li class="<%= pageTitle == 'Home' ? 'navbar-item active' : 'navbar-item' %>"
我认为问题可能在于比较。作为第一个检查,在您的第二个版本中尝试'=='和'!='。如果'!='给你'当前'类,你知道一般的逻辑是好的。有关更多详细信息以及如何比较字符串的更好方法,请查看此处:How could I compare two string in Jsp?
使用if else语句,我已经设法为我自己的问题开发了一个替代解决方案。在与一位对此提出相对简单的解决方案的同学讨论后,我得出了这个结论。
<li <% if (pageTitle == 'Home') { %> class='navbar-item active'<% } else { %> class = 'navbar-item' <% } %>>
这并不是我希望它能够正常工作,但仍能有效地发挥作用。