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 回答