JavaScript, Django и Google App Engine - замена текста - PullRequest
0 голосов
/ 11 ноября 2010

Моя цель - связать всплывающую подсказку (содержащую определение) с определенными словами на стороне клиента с помощью 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 ! "

Мой желаемый вывод:

"Абзац текста, содержащий ключевые слова, такие как ключевое слово1 и ключевое слово2 !"

Любая помощь будет принята с благодарностью, у меня очень ограниченные знания в JS.

1 Ответ

1 голос
/ 11 ноября 2010

Самый простой способ сделать это - просто создать строку в цикле Django for, заменяя ее каждый раз и выводя только в конце:

...