JavaScript模板:将每个单词包装在HTML元素的字符串中

时间:2012-10-23 14:34:17

标签: javascript html

我正在尝试修改JavaScript模板,以便特定字符串中的每个单词都包含在<span>个元素中。我有:

<% var tagString = "Happy Sad Up Down", tags = tagString.split(" "), wrappedTags = ""; %>
<% for (var i = 0; i < tags.length; i++) { %>
    <% wrappedTags += "<span>" + tags[i] + "</span>"; %>
<% } %>
<p><%=wrappedTags%></p>

问题是,这会将"<span>""</span>"作为文本输出,而不是HTML,因此我最终会在页面上显示以下文字:

&LT;跨度&GT;快乐&LT; /跨度&GT;&LT;跨度&GT;悲伤&LT; /跨度&GT;&LT;跨度&GT;多达&LT; /跨度&GT;&LT;跨度&GT;唐氏LT; /跨度&GT;

在此语法中是否有任何方法可以将包装<span>标记输出为HTML?


更新:使用常规(非模板)语法,只需将wrappedTags写入页面http://jsfiddle.net/4QtUd/即可。但是,我无法弄清楚在模板语法中执行此操作的等效方法。

2 个答案:

答案 0 :(得分:1)

你可以这样做,直接在循环中输出。

<% var tagString = "Happy Sad Up Down", tags = tagString.split(" "); %>
<p>
<% for (var i = 0; i < tags.length; i++) { %>
    <span><%= tags[i] %></span>
<% } %>
</p>

答案 1 :(得分:0)

尝试将您的<>替换为HTML实体。 http://www.w3schools.com/html/html_entities.asp

基本上是:< -> &lt;> -> &gt;