Javascript node.js ejs rerender div after ajax

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>

我的问题是在ajax调用成功后更新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来更新内容