Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用EJS和HTML向已添加类的元素添加其他类?_Javascript_Html_Css_Node.js_Ejs - Fatal编程技术网

Javascript 使用EJS和HTML向已添加类的元素添加其他类?

Javascript 使用EJS和HTML向已添加类的元素添加其他类?,javascript,html,css,node.js,ejs,Javascript,Html,Css,Node.js,Ejs,我目前正在尝试使用ejs为navbar开发一个部分模板文件,但是我正在努力向已经添加了类的元素添加其他类 我尝试了两种添加附加类的方法,这是第一种: <li class='navbar-item'<% if (pageTitle === 'Home') { %> class="active" <% } %>> <a href="/home">Home</a></li> 但是,这不起作用,所以我决定尝试将EJS嵌入cla

我目前正在尝试使用ejs为navbar开发一个部分模板文件,但是我正在努力向已经添加了类的元素添加其他类

我尝试了两种添加附加类的方法,这是第一种:

<li class='navbar-item'<% if (pageTitle === 'Home') { %> class="active" <% } %>> <a href="/home">Home</a></li>

但是,这不起作用,所以我决定尝试将EJS嵌入class属性中,如下所示

<li class="nav-item <% if (pageTitle === 'Home') { %> active <% } %>"> 
  • 这也不起作用,我已经确保pageTitle是正确的,因为它是在网页内的其他地方使用,工作良好

    我不确定下一步是什么,我已经考虑过使用一个额外的JS文件,但这似乎适得其反,因为我已经有能力将JS嵌入HTML中


    感谢您的帮助,提前谢谢。

    我想问题可能在比较中。作为第一个检查,在第二个版本中,请同时尝试“==”和“!=”。如果“!=”给你“当前”类,你知道逻辑一般是好的。 有关更多详细信息以及如何在此处比较字符串的更好方法,请查看此处:

    使用if-else语句,我成功地为自己的问题开发了一个替代解决方案。我是在与一位同学讨论后得出这个结论的,他提出了一个相对简单的解决方案

    <li <% if (pageTitle == 'Home') { %> class='navbar-item active'<% } else { %> class = 'navbar-item' <% } %>>
    
    
    

    这并不是我所希望的那样,但仍然有效。

    像这样的条件运算符可以让您的生活更轻松

    <li class="<%= pageTitle == 'Home' ? 'navbar-item active' : 'navbar-item' %>" 
    

    这是一篇有趣的文章,但是这里的比较应该没有什么区别。我已确保输入的值是正确的。谢谢。我不是说值是正确的,我的意思是比较(运算符)本身可能是错误的。因此,我建议使用否定运算符,看看是否得到正确的结果。还要注意引用的资源中的“==”vs“==”和“==”vs.equal()”。请试一试。我确实查看了比较运算符,但是在本例中没有区别,因为我通过express route提供了一个键值对象对,该值实际上是一个字符串,因为它是静态的,而不是动态的。阅读上面您自己的解决方案,您能否详细说明为什么它解决了您的问题?在我看来,您现在生成的是“导航栏项目活动”,而不是“导航项目当前”。这似乎有点像是命名或css中的问题,而不是代码逻辑中的问题……诚然,我添加的类中有一个错误,但是这个问题没有什么区别,因为我使用chrome上的DevTools来检查将添加哪些类,代码仍然存在一个持久性问题,没有成功地将类添加到class属性中。。。我现在已经更新了最初的帖子,使其更适合工作。这是一个比我更好的解决方案,它更高效,使用更少的代码,谢谢。