我在日语目录上运行此脚本,用于替换页面上的英语术语,以获取不可自定义的术语的Blog插件。它工作得很好,但它似乎只是在第一次看到它时取代了这个术语。
http://www.martyregan.com/jp/blog/
例如,你会看到View Post,Tags,Feb在底部博客文章中仍然是英文。
这是脚本:
$(document).ready(function(){
$('#pb_sidebar, #left-sidebar-inner, #pb_body, #main-content-inner, #sidebar-archives').each(function(i){
$(this).html($(this).html().replace('Category List','ブログテーマ一覧'));
$(this).html($(this).html().replace('Tag List','タグ'));
})
})
如何更改它以便它能够在任何地方抓住它?谢谢!
答案 0 :(得分:5)
您需要使用带有/g
选项的正则表达式,否则string.replace()
只会运行一次。
例如:
$(this).html($(this).html().replace(/Category List/g,'ブログテーマ一覧'));
答案 1 :(得分:3)
顺便说一下,你真的用这种方法来攻击DOM。
考虑缓存.html()结果,然后首先运行替换,然后再将新文本放回DOM中:
$(document).ready(function(){
$('#pb_sidebar, #left-sidebar-inner, #pb_body, #main-content-inner, #sidebar-archives').each(function(i){
var mycontent = $(this).html();
mycontent = mycontent.replace(/Category List/g,'ブログテーマ一覧');
mycontent = mycontent.replace(/Tag List/g,'タグ');
$(this).html(mycontent);
})
})
答案 2 :(得分:1)
据我所知,replace是一个原生的JavaScript函数。为了让它替换每次出现,你必须使用你正在搜索的RegEx的g参数,例如/ searchstring / g而不是“searchstring”
答案 3 :(得分:1)
尝试为替换添加全局修饰符:
$(this).html($(this).html().replace(/Category List/g,'ブログテーマ一覧'));
$(this).html($(this).html().replace(/Tag List/g,'タグ'));