Javascript node.js ejs rerender div after ajax
我的问题是在ajax调用成功后更新div块。 所以我是这样做的: 我的部门:Javascript node.js ejs rerender div after ajax,javascript,jquery,ajax,node.js,ejs,Javascript,Jquery,Ajax,Node.js,Ejs,我的问题是在ajax调用成功后更新div块。 所以我是这样做的: 我的部门: <div class="lists"> <% for(var i=0; i<searchItem.length; i++) {%> <a class="list-link" href="#"><div class="list"><%= searchItem[i] %></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>
$.ajax({
url: '/search?val=' + encodeURIComponent($('#search-input').val()),
success: function(data) {
console.log('DATA-' + data);
new EJS({url:' /views/dropdown.ejs'}).update('lists',data)
}
});
我的项目结构:
<div class="lists">
<% for(var i=0; i<searchItem.length; i++) {%>
<a class="list-link" href="#"><div class="list"><%= searchItem[i] %></div></a>
<% } %>
</div>
$.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模板(未找到)。为什么?
另一个问题是我需要写入哪种类型的选择器。更新(“列表”、数据)、我的div块的Id或class?我假设您使用的是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来更新内容