0

私の目標は、JS を使用してクライアント側の特定の単語にツールチップ (定義を含む) を関連付けることです。
テキストは (GAE データストアから) Django/Python で生成されます。
これを実現するには、定義が必要な複数のキーワードのテキスト ブロックをスキャンし、ツールヒント用の HTML「タイトル」を動的に作成する必要があります。

一度に 1 つのキーワードに対してこれを行うことに成功しましたが、同じテキスト ブロック内で複数の値を検索して置換することができないようです (django forloop で達成しようとすると、元の文字列全体が各置換コマンドに対して 1 回表示されます - 以下を参照してください)。

私のコード:

    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の知識が非常に限られています。

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 に答える