用数组替换val中的Text - jquery

时间:2013-12-26 08:07:07

标签: jquery arrays

我希望用文本区域值替换文本区域中的文本。我已经看到了如何用值

替换文本
$("#mySelector").val(function(i, v) { //index, current value
return v.replace("#","Custom Text");
});

但是我要替换多个项目。我试过&&在多个值之间,但我显然做错了。

这是我到目前为止所做的:

$(document).ready(function() {

  $('#submit').click(function() {

    var array = [];

    array[0] = '#1', 'Value 1';
    array[1] = '#2', 'Value 2';
    array[2] = '#3', 'Value 3';


    $('#article').val(function(i,v) {
            return v.replace(
            '$VET','Sebastian Vettel' &&
            '$VETf','Sebastian'
            );
    });
    return false;
});
});

数组在那里,但我想知道如何在函数中使用它来返回v.replace。我的jQuery非常基础,因此我的问题。感谢任何想法。

3 个答案:

答案 0 :(得分:0)

如果要替换多个字符串,则应使用多种.replace()方法:

return v.replace('str1','Sebastian Vettel')
        .replace('str2','Sebastian');

您也可以使用对象:

,而不是使用多个.replace()方法
var chars = {
   '#1': 'Value 1',
   '#2': 'Value 2'
};

$('#article').val(function(i, v) {
    for(k in chars) {
       if (chars.hasOwnProperty(k)) 
         v = v.replace(k, chars[k]);
    }
    return v;
});

答案 1 :(得分:0)

您需要将替换链接在一起,如下所示:

。 $(document).ready(function(){

$('#submit')。click(function(){

var array = [];

array[0] = '#1', 'Value 1';
array[1] = '#2', 'Value 2';
array[2] = '#3', 'Value 3';


$('#article').val(function(i,v) {
        return v.replace(
        '$VET','Sebastian Vettel').replace(
        '$VETf','Sebastian'
        );
});
return false;

}); });

答案 2 :(得分:0)

您需要遍历数组并替换

$(document).ready(function () {

    $('#submit').click(function () {

        var array = [];

        array[0] = ['#1', 'Value 1'];
        array[1] = ['#2', 'Value 2'];
        array[2] = ['#3', 'Value 3'];

        $('#article').val(function (i, v) {
            $.each(array, function (i, arr) {
                v = v.replace(arr[0], arr[1]);
            })
            return v;
        });
        return false;
    });
});

演示:Fiddle