我有一个字符数组,我想用 jquery 进行查找和替换。数组是:
var f = ['“','â€','‘'','’','…','—','–'];
var r = ['"','"',"'","'","...","-","-"];
我尝试了一些不同的想法,但没有任何效果。我在这里设置了一个小提琴来处理它:
有什么建议么?
我有一个字符数组,我想用 jquery 进行查找和替换。数组是:
var f = ['“','â€','‘'','’','…','—','–'];
var r = ['"','"',"'","'","...","-","-"];
我尝试了一些不同的想法,但没有任何效果。我在这里设置了一个小提琴来处理它:
有什么建议么?
在这个特定的示例中,问题不是您的替换功能,而是您的 jquery 选择器。如果您将 $(this) 替换为 $('body') 它会起作用。也就是说,我不确定将整个页面的 HTML 复制到一个字符串中,对其进行替换,然后将该字符串放回您的正文中是最有效的方法。也许你可以把它缩小到更小的部分,比如你内容中的 p 标签,你可以用一个类来标记它以从替换中消除其他 p 标签。
你做对了。:)
在你的小提琴中,选择器$(this)
是错误的,所以没有文本。您可以使用元素的 id 或整个身体来代替。此外,您忘记将文本重置为 dom。更换本身工作正常。
var text = $('#wfmrdablogspot').html();
var f = ['“', 'â€', '‘', '’', '…', '—', '–'];
var r = ['"', '"', "'", "'", "...", "-", "-"];
text = text.replaceArray(f, r);
$('#wfmrdablogspot').html(text);
一些基本调试显示$(this).html()
不起作用(this
被解析为当前窗口)。改为使用$(document.body)
。
var html = $(document.body).html();
var f = ['“', 'â€', '‘', '’', '…', '—', '–'];
var r = ['"', '"', "'", "'", "...", "-", "-"];
var newHtml = html.replaceArray(f, r);
$(document.body).html(newHtml);