1

たとえば、KEYWORDANIMAL:(Cat)というテキストがページに表示されているとします。ページを検索してKEYWORDANIMALのすべてのインスタンスを検索し、実際の動物(この場合はCat)を変数にプルして、関連するコンテンツをプルする別のスクリプトで使用したいと思います。また、KEYWORDANIMAL:(Cat)を、他のスクリプトのターゲットとなる連結IDを持つ空のdivに置き換えたいと思います(この他のスクリプトは、すでに正常に機能しています)。

私はここで他のいくつかのスレッドからの情報を使用していますが、すべてをまとめることはできません。

-jQueryを使用してテキスト文字列を検索しますか?

-文字からテキストを取得し、jQueryを使用した後

-JQueryを使用して、Webページ内の特定の単語に出現するすべてのものを置き換えるにはどうすればよいですか?

これが私がこれまでに持っているものです:

<p>Here is an animal: KEYWORDANIMAL(Cat)</p>

var findString = $('p:contains("KEYWORDANIMAL")').html();
var startIDString = findString.indexOf('(') + 1;
var endIDString = findString.indexOf(')');
var animalID = findString.substring(startIDString, endIDString);
var embedString1 = "<div id=\"";
var embedString2 = "\"></div>";
var embedStringFull = embedString1 + "animal" + animalID + embedString2;
alert(embedStringFull);

findString.each(function () {
    var newDIV = $(this).html().replace('KEYWORDANIMAL', embedStringFull);
    $(this).html(newDIV);
});

フィドル形式: http: //jsfiddle.net/dC6bj/1/

私は検索部分をダウンさせましたが(おそらくあまり効率的ではありませんが)、置換で何かが明らかに欠落しています。

4

2 に答える 2

0

JavaScriptでこれを絶対に行う必要がある場合は、正規表現置換関数を使用できます。

var animal_regex = /KEYWORDANIMAL\((.*?)\)/g;

$('p:contains("KEYWORDANIMAL")').each(function() {
    var $this = $(this);
    var html =  $this.html().replace(animal_regex, function(match, name) {
        return '<div id="animal' + name + '"></div>';
    });

    $this.html(html);
});

デモ: http: //jsfiddle.net/dnuaL/

可能であれば、これはサーバーサイドで実行する必要があります。

于 2013-03-15T21:25:22.163 に答える
0

Webページ内の特定の単語のすべての出現箇所を置き換える方法に関する3番目の質問には、Regexを使用します。次のように置き換えます。

var pagecontent = $('body').html();
var newcontent = Regex.Replace(pagecontent , @"[cat]", "dog");
&('body').html(newcontent);

正規表現は、この種のものの最速のソリューションです。私のコード例は少し単純ですが、タグ内のオカレンスも置き換えます。または単語内、たとえばカタマランまたは。

より完璧にするために、スペースの前にスペース、ポイント、またはコンマが続く猫を探すことができます。このためのいくつかの正規表現チュートリアルを読んでください。(それは本当に学ぶ価値があります、あなたが方法を知ったら、あなたはそれをたくさん使うでしょう)

幸運を!

于 2013-03-15T21:35:01.010 に答える