Javascript jQuery:用另一个数组替换一个数组
我使用以下代码将一个字符的所有实例替换为另一个:Javascript jQuery:用另一个数组替换一个数组,javascript,jquery,replace,Javascript,Jquery,Replace,我使用以下代码将一个字符的所有实例替换为另一个: $("#myContent").each(function () { $(this).html($(this).html().replace("1", "一")); }) $("#myContent").each(function () { $(this).html($(this).html().replace("2", "二")); }) $("#myContent").each(function () { $(th
$("#myContent").each(function () {
$(this).html($(this).html().replace("1", "一"));
})
$("#myContent").each(function () {
$(this).html($(this).html().replace("2", "二"));
})
$("#myContent").each(function () {
$(this).html($(this).html().replace("3", "三"));
})
...
如何将所有这些放在一起,比如用另一个数组替换一个数组?像这样的,未经测试的:
var replacers = {
'一': /1/gi,
'二': /2/gi,
'三': /3/gi
};
var el = $("#myContent"),
html = el.html();
for (var key in replacers) {
html = html.replace(replacers[key], key);
}
el.html(html);
请尝试以下方法:
var html = $(this).html();
html = html.replace(/1/g, "一");
html = html.replace(/2/g, "二");
html = html.replace(/3/g, "三");
$(this).html(html);
试一试
演示:为什么要对一个选定的元素使用
每个?首先,看起来有多个元素具有相同的ID谢谢,但这不会更改角色的每个实例。例如,在“2011”中,只有第一个“1”会改变。更新了帖子。请注意,如果您经常这样做,您可能应该缓存正则表达式。我的数组只包含数字,所以基本上它有十个成员。是否仍需要缓存?在任何情况下,请告诉我应该如何缓存它们。在这种情况下,我只需提前创建regexp,并进行更新。这不会更改角色的每个实例。例如,在“2011”中,只有第一个“1”会改变。
var replacers = {
'1': '一',
'2': '二',
'3': '三'
};
$("#myContent").html(function(index, html){
$.each(replacers, function(i, v){
html = html.replace(new RegExp(i, 'g'), v, 'g')
})
return html;
});