1

对不起我的英语 =) 我需要替换页面上的一些元素。这是我的代码:

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

但是只替换第一个和第三个,如果删除第三个元素数组,第一个和第二个就改变了。请告诉我该怎么做。谢谢!

4

2 回答 2

2

这是因为在评估变量时,原始正文 html 保持不变。您需要链接替换或使用以前的变量进行另一个替换:

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

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

$('body').html(text3);
于 2012-10-21T19:20:16.933 回答
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);
于 2012-10-21T19:23:10.707 回答