使用jQuery Array在页面内查找和替换

时间:2013-03-29 15:23:31

标签: jquery replace

我有一个字符数组,我想查找并用jquery替换。该数组是:

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

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

我尝试了一些不同的想法,但没有任何效果。我在这里设置了一个小提琴:

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

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

在这个特定的示例中,问题不是您的替换函数,而是您的jquery选择器。如果用$('body')代替$(this),它就可以了。也就是说,我不确定将整个页面的HTML复制到字符串中,对其进行替换,然后将该字符串放回到您的身体中是最有效的。也许你可以将它缩小到较小的部分,比如你内容中的p标签,你可以用一个类来标记,以消除替换中的其他p标签。

答案 1 :(得分: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/

答案 2 :(得分: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/