使用EJS或jQuery设置HTML标记的属性

Ele*_*ary 10 html javascript jquery ejs express

在我的快速服务器上,我正在使用如下数据呈现页面:

app.get('/people/:personID', function (req, res) {
  res.render("people/profile", {person: req.person });
});
Run Code Online (Sandbox Code Playgroud)

在我的profile.ejs文件中,我可以访问ejs标签中的数据,如下所示: <p><%= person.name %></p>

我无法想象如何将html标签的属性更改为存储在此对象中的值.

这不起作用:<img id="my_img" src=<%= person.picture %> alt="">
或者:$("#my_img").attr("src", <%= person.picture %>);

此外,如果有更好的方法将此文档传递到html页面并访问它,我会全神贯注(或在这种情况下是眼睛).谢谢

zis*_*she 19

您必须在引号内包含字符串值.

在html中:

<img id="my_img" src="<%= person.picture %>" alt="">
Run Code Online (Sandbox Code Playgroud)

在jQuery中:

$("#my_img").attr("src", "<%= person.picture %>");
Run Code Online (Sandbox Code Playgroud)

  • 如果你想填充像 onclick 这样的 JS 调用,但你的数据可能包含单个撇号,你可以使用 [数据属性](https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto /Use_data_attributes) 通过例如 `onclick="someCall(this)" data-something="&lt;%= someValue %&gt;"` 传递,在接收函数中可以通过 `passedThisElement.dataset.something` 读取。 (2认同)