node.js ejs rerender div afte ajax

我的问题是在succes 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)。 为什么?

另一个问题什么types的select器我需要在.update('列表',数据),我的div块的Id或类写入?

我假设你正在使用Express和views / dropdown.ejs是你的快递后台的一个视图。

如果我的假设是正确的,则不能直接访问后端的视图。 你必须为这个视图创build一个路由器,或者你可以把这个模板放在你的静态文件夹中。

 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的select器的问题,这取决于你想要达到什么。 使用类select器将获得具有该类名称的所有DOM,并且如果为您提供了一个DOM数组,则对于该ID(需要在特定页面上是唯一的),将select单个DOM。

看看你的示例,我认为你需要使用ID和目标的DOM更新内容。