如何在循环中替换文本中的所有文本?

时间:2012-10-21 19:17:57

标签: javascript jquery replace

抱歉我的英文=) 我需要替换页面上的一些元素。这是我的代码:

var text1 = $('body').html().replace(/text1/, 'text11');
var text2 = $('body').html().replace(/text2/, 'text22');
var text3 = $('body').html().replace(/text3/, 'text33');
array = [text1, text2, text3];
      for (var i = 0; i < array.length; i++) {
        $('body').html(array[i])
      };

但是要仅替换第一个和第三个,如果删除第三个元素数组,则更改第一个和第二个元素。请告诉我怎么做。谢谢!

2 个答案:

答案 0 :(得分:2)

那是因为在评估变量时原始的主体html保持不变。您需要链接替换或使用先前的变量进行其他替换:

var text1 = $('body').html().replace(/text1/, 'text11');
var text2 = text1.replace(/text2/, 'text22');
var text3 = text2.replace(/text3/, 'text33');

然后你不需要任何迭代..

$('body').html(text3);

答案 1 :(得分:2)

var items = [
    { find: /text1/, replace: 'text11' },
    { find: /text2/, replace: 'text22' },
    { find: /text3/, replace: 'text33' }
];
var text = $('body').html();

for (var i = 0; i < items.length; i++)
{
    var item = items[i];
    text = text.replace(item.find, item.replace);
}

$('body').html(text);