为什么这个 ejs 变量的 fontFamily 是未定义的?

Why is the fontFamily of this ejs variable undefined?

我有一个网站,用户可以在其中提交他们喜欢的任何字体的文本,当他们的文本加载到 ejs 文件时,它会以他们选择的字体显示文本。下面是选择字体的方法:

<label for="fonts">Choose a font:</label>
<select name="fontType" id="fonts">
  <option value="Verdana">Verdana</option>
  <option value="Times New Roman">Times New Roman</option>
  <option value="Georgia">Georgia</option>
</select>
<br><br>

其中,提交的文本和选择的字体都作为字符串值保存到 MongoDB 集群中。

在ejs文件中,用户提交的文本保存在变量t中,字体保存在变量font中:

<% let t = numbers.usertext%> <% let font = numbers.fontType%>

其中“numbers”是 index.js 文件以以下形式提出的对象:

res.render("template.ejs", { numbers: numbers});

然后,稍后在 <script> 标记中,我定义了一些 JS 变量:

let t = "<%= t %>";  let font = "<%= font %>;"

我认为所有需要做的事情都是这样的:

t.style.fontFamily = font;

但是,我收到一条错误消息“无法设置未定义的属性(设置 'fontFamily')”,我不知道这是为什么。 我可以通过使用 selecter.style.fontFamily = font 来更改某些 <p> 标签的字体没问题,但由于某种原因无法操作变量 t 的属性。

style 是在 HTMLElement objects but t is a String 上找到的 属性(所以它的 style 属性 是 undefined)。

如果您想对从 JS 字符串文字中获得的某些文本设置样式,您需要先将其放入 HTML 元素中。