繁体   English   中英

node.js ejs 在 ajax 之后重新渲染 div

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM