Node.js+MongoDB项目:EJS模板实现标签<a>包裹展示
解决EJS中循环生成标签链接的问题
嘿,这事儿其实超简单的!你只需要在EJS的循环里直接把<a>标签写进去就行,完全不用复杂操作。
基础实现版本
把你原来的循环代码改成这样,每个标签就会被包裹成可点击的链接了:
<% for(var i=0; i<tags.length; i++) { %> <a href="/tags/<%= tags[i] %>"><%= tags[i] %></a> <% } %>
这里的/tags/<%= tags[i] %>是示例路由,你可以根据自己后端的路由规则调整,比如如果是要跳转到标签搜索页面,就改成对应的接口路径就行。
带分隔符的优化版本
如果想让标签之间看起来更美观,比如加个逗号或者竖线分隔,可以在循环里判断是否是最后一个元素:
<% tags.forEach((tag, index) => { %> <a href="/tags/<%= tag %>" style="margin-right: 8px;"><%= tag %></a> <% if (index !== tags.length - 1) { %> <span>,</span> <% } %> <% }) %>
我这里用了forEach循环(比for循环更简洁),还加了点内联样式让标签间距更舒服,你也可以换成自己的CSS类名。
核心原理
EJS本身就是允许在模板里混合HTML和JS逻辑的,所以你完全可以在循环的JS代码块里直接写HTML标签,只要把动态内容用<%= %>插入就行——就像你之前输出标签文本那样,只是现在把文本放在<a>标签内部,同时给href属性动态赋值。
内容的提问来源于stack exchange,提问作者Counter J
相关产品推荐
相关产品推荐

