我的问题是在成功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未找到)。为什么呢?
另一个问题我需要在.update(&#39;列出&#39;,数据),我的div块的Id或类中写入哪种类型的选择器?
答案 0 :(得分:1)
我假设您正在使用Express和views / dropdown.ejs是您快速后端的视图。
如果我的假设是正确的,您无法直接访问后端的视图。您必须为此视图创建路由器,或者您可以将此模板放在静态文件夹中。
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作为目标来更新内容。