Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:用另一个数组替换一个数组_Javascript_Jquery_Replace - Fatal编程技术网

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;
});