我有以下代码:
$(document).on('click','.submitMessage,.submitStdMessage', function(e){
prevContent=$('textarea').val();
alert(prevContent);
variables = {
'{nom}' : 'Manuel',
'{apl}' : 'García',
'{var1}' : 'chips',
'{var2}' : 'deportes y aventura',
'{var3}' : 'informática y tecnología',
'{cst1}' : 'Serrano, 28',
'{cst2}' : 'Plaza del carmen, 32',
'{cst3}' : 'García Luna, 15'
};
$.each(variables, function (key, value) {
newContent = prevContent.replace(key, value);
});
alert(newContent);
});
当传递这样的字符串时:
{nom} {var2} {cst2} {cst1} {cst3}
第一个警告说:
{nom} {var2} {cst2} {cst1} {cst3}
第二个警报说:
{nom} {var2} {cst2} {cst1}GarcíaLuna,15岁
如果更改
variables
数组中元素的顺序,它将始终替换数组最后位置上设置的变量。我需要它来替换所有发送的变量。 最佳答案
那么prevContent
永远不会改变。您需要更新它而不是另一个变量:
// Always declare local variables with var!!!
var prevContent=$('textarea').val();
alert(prevContent);
var variables = {
'{nom}' : 'Manuel',
'{apl}' : 'García',
'{var1}' : 'chips',
'{var2}' : 'deportes y aventura',
'{var3}' : 'informática y tecnología',
'{cst1}' : 'Serrano, 28',
'{cst2}' : 'Plaza del carmen, 32',
'{cst3}' : 'García Luna, 15'
};
$.each(variables, function (key, value) {
prevContent = prevContent.replace(key, value);
});
alert(prevContent);