0

検索して jquery に置き換えたい文字の配列があります。配列は次のとおりです。

var f = ['“','â€','‘'','’','…','—','–'];

var r = ['"','"',"'","'","...","-","-"];

私はいくつかの異なるアイデアを試しましたが、何も機能していません。ここで作業するためにフィドルをセットアップします:

http://jsfiddle.net/npGRF/1/

助言がありますか?

4

3 に答える 3

3

この特定のサンプルでは、​​問題は置換関数ではなく、jquery セレクターにあります。$(this) を $('body') に置き換えると機能します。そうは言っても、ページ全体の HTML を文字列にコピーし、それを置き換えてから、その文字列を本体に戻すことが最も効率的かどうかはわかりません。おそらく、コンテンツ内の p タグのように、より小さな部分に絞り込むことができます。おそらく、クラスでラベルを付けて、置換から他の p タグを排除できます。

于 2013-03-29T15:32:03.423 に答える
2

あなたはそれを正しくやっています。:)

あなたのフィドルではセレクター$(this)が間違っていたので、テキストがありませんでした。代わりに、要素または本体全体の ID を使用できます。さらに、テキストを dom にリセットするのを忘れていました。交換自体は順調です。

var text = $('#wfmrdablogspot').html();
var f = ['“', 'â€', '‘', '’', '…', '—', '–'];
var r = ['"', '"', "'", "'", "...", "-", "-"];
text = text.replaceArray(f, r);
$('#wfmrdablogspot').html(text);

http://jsfiddle.net/npGRF/2/

于 2013-03-29T15:31:49.513 に答える
0

$(this).html()機能しないいくつかの基本的なデバッグ ショー(this現在のウィンドウとして解決されます)。$(document.body)代わりに使用してください。

var html = $(document.body).html();
var f = ['“', 'â€', '‘', '’', '…', '—', '–'];
var r = ['"', '"', "'", "'", "...", "-", "-"];
var newHtml = html.replaceArray(f, r);

$(document.body).html(newHtml);

http://jsfiddle.net/npGRF/3/を参照してください

于 2013-03-29T15:35:53.773 に答える