0

ここで別の質問で提示されたリンクにキーワードを変換する少し変更されたバージョンを使用しています。

いくつかの省略を除いたコードは次のとおりです。

$(".keyword_search").each(function() {
    var targetword = 'TEST';
    var explanation = 'Is something you do to find out if stuff works';
    //targetword and explanation actually defined in a loop, but omitted here  
    var content = $(this)[0];
    var re = new RegExp("(\\b"+targetword+"\\b)", "gi");
    content.innerHTML = content.innerHTML.replace(re,keywordconvert);
}

function keywordconvert(str, p1, offset, s ) {
     return '<a href="#" data-toggle="tooltip" title="'+p1+'">'+p1+'</a>';
}

このコードについていくつか質問があります。

1)keywordconvertのパラメータはどこで定義されていますか?strp1にはどちらも置換する文字列が含まれ、offsetにはコンテンツ内の単語の開始点が含まれ、sにはコンテンツが含まれます。

2) keywordconvert関数のリンクのtitle -classに説明文字列を追加するにはどうすればよいですか?つまり、この関数にパラメーターを追加するにはどうすればよいですか?

どんな助けでもありがたいです、私はあまりにも長い間答えを求めてウェブを精査してきました。

4

1 に答える 1

2

1)keywordconvertのパラメータはどこで定義されていますか?

String#replace定義によると。replace検索として正規表現を使用し、置換として関数を使用して呼び出すと、一致した文字列、定義されたキャプチャグループ、一致が発生したオフセット、最後に文字列自体を使用して関数が呼び出されます。渡される正規表現は1つのキャプチャグループを定義するstrため、これは一致するサブ文字列にp1なり、キャプチャグループのコンテンツになりoffset、文字列内のインデックス(オフセット)になり、文字列s全体になりますreplace。と呼ばれる。

2)keywordconvert関数のリンクのタイトルクラスに説明文字列を追加するにはどうすればよいですか?

eachおそらく、イテレータ関数内に独自の関数を作成する必要がありますが、これは理想的ではありません。例:

$(".keyword_search").each(function() {
    var targetword = 'TEST';
    var explanation = 'Is something you do to find out if stuff works';
    //targetword and explanation actually defined in a loop, but omitted here  
    var content = $(this)[0];
    var re = new RegExp("(\\b"+targetword+"\\b)", "gi");
    content.innerHTML = content.innerHTML.replace(re,function(str, p1, offset, s) {
        return keywordconvert(str, p1 + explanation, offset, s);
    });
});

p1 + explanation私が持っているところでは、あなたはもっと面白いことをしたいと思うだろうと思いますが、それがp1を設定することに注意してくださいtitle

于 2013-03-25T08:39:06.933 に答える