我有一个网站,用户可以用他们想要的任何字体提交文本,当他们的文本加载到 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')”,我不知道这是为什么。
我可以更改一些 <p>
的字体通过使用 selecter.style.fontFamily = font
来标记没问题,但由于某种原因无法操作变量 t 的属性。
最佳答案
style
是在 HTMLElement objects 上找到的属性但 t
是 String (因此它的 style
属性是 undefined
)。
如果您想对从 JS 字符串文字获得的某些文本进行样式设置,则需要先将其放入 HTML 元素中。
关于javascript - 为什么这个 ejs 变量的 fontFamily 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70145749/