[英]node.js ejs rerender div afte ajax
我的问题是在成功调用 ajax 后更新 div 块。 所以我这样做:
我的div:
<div class="lists">
<% for(var i=0; i<searchItem.length; i++) {%>
<a class="list-link" href="#"><div class="list"><%= searchItem[i] %></div></a>
<% } %>
</div>
我的 jquery ajax 调用:
$.ajax({
url: '/search?val=' + encodeURIComponent($('#search-input').val()),
success: function(data) {
console.log('DATA-' + data);
new EJS({url:' /views/dropdown.ejs'}).update('lists',data)
}
});
我的项目结构:
但是我得到了 404 错误,因为 ejs 看不到 dropdown.ejs 模板( http://localhost:3000/views/dropdown.ejs NOT FOUND)。 为什么?
另一个问题我需要在 .update('lists',data) 、Id 或我的 div 块的类中写入什么类型的选择器?
我假设您正在使用 Express 并且 views/dropdown.ejs 是您的 Express 后端中的一个视图。
如果我的假设是正确的,您将无法直接访问后端视图。 您必须为此视图创建一个路由器,或者您可以将此模板放在您的静态文件夹中。
router.get('/template/:templateName', function(req, res){
res.render(req.params.templateName, { title: 'Template' });
});
// Or put your template inside public folder
app.use(express.static(path.join(__dirname, 'public')));
至于您关于 DOM 选择器的第二个问题,这取决于您想要实现的目标。 使用类选择器将获得具有该类名的所有 DOM,如果给你一个 DOM 数组,至于 ID(需要在某个页面上是唯一的),它将选择单个 DOM。
查看您的示例,我认为您需要使用 ID 并以该 DOM 为目标来更新内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.