0

我的目标是使用 JS 将工具提示(包含定义)与客户端的某些单词相关联。
该文本是使用 Django/Python 生成的(来自 GAE 数据存储)。
为此,我需要扫描一段文本以查找需要定义的多个关键词,并为工具提示动态创建一个 html“标题”。

我一次成功地为一个关键字完成了此操作,但是,我似乎无法在同一文本块中搜索和替换多个值(当我尝试使用 django forloop 完成时,整个原始字符串每个替换命令出现一次 - 见下文)。

我的代码:

    var str="<p>Paragraph of text containing key words such as test1 and test2!  </p>";
    {% for i in thing %}
    document.write(str.replace(/{{i.word}}/gi, "<strong><a title='{{i.tooltip}}'> {{i.word}}</a></strong>"));
    {% endfor %}

这导致:

“包含keyword1和keyword2等关键词文本段落! 包含keyword1和keyword2
等关键词的文本段落!” 我想要的输出是:

“包含keyword1keyword2等关键词的文本段落!”

任何帮助将不胜感激,我对 JS 的了解非常有限。

4

1 回答 1

1

最简单的方法是在 Django for 循环中简单地构建字符串,每次都替换它,然后只在最后输出它:

{% for i in thing %}
str = str.replace(/{{i.word}}/gi, "<strong><a title='{{i.tooltip}}'> {{i.word}}</a></strong>"));
{% endfor %}
document.write(str);
于 2010-11-11T12:38:41.963 回答