如何将字符串添加到变量中;

时间:2012-04-21 12:32:10

标签: javascript string variables increment

我有这个js ....

$("#form").submit(function(){  
var answerlist = "first";  
var answerlist = answerlist + "," + $("#get_answer").attr("value");  
alert(answerlist);  
});

我正在尝试将ID为#get_answer的输入字段的值添加到answelist变量....

我希望answerlist现在= first move //其中输入字段的值为move,是的,结果是成功...

现在我第二次试图在answerlist变量中添加另一个值....

值为on
我希望结果将是first move on

但是当我使用alert()检查时,它会返回first on

有人可以帮助我吗??

我想要的是将值(字符串)增加到变量answerlist

喜欢

answerlist = "first";
answerlist = "first move";
answerlist = "first move on";

5 个答案:

答案 0 :(得分:3)

(function () {
    // to isolate it from rest of the code 

    var handler = function (target) {
        var list = 'first';
        return function () {
            list = list + target.value;
            alert(list);
        };
    },
    action = handler(document.getElementById('get_answer'));

    $(document.getElementById('form')).submit( action );

}());

这种结构称为“闭包”,它是JavaScript语言中最重要的功能之一,您应该学习如何使用它。 This lecture可能有帮助。

请停止使用$.attr()来处理琐碎的事情。

答案 1 :(得分:2)

使用此处的代码段,您可能永远不会超过“先移动”,因为您在第二行上设置了应答列表,并且仅在提交表单时生成。因此,除非您输入的值是“继续”,否则它将永远不会显示预期的结果。

如果需要,可以将应答列表变量放在函数作用域之外,并在输入更改时添加值...

var answerlist = "first";  
$("#form #get_answer").change(function(){  
    answerlist = answerlist + "," + $("#get_answer").val();  
});
$("#form").submit(function(){  
    alert(answerlist);  
});

但请注意,您无法从此列表中删除任何内容。相反,如果您需要具有删除项目的潜力,您可能希望使用数组并推送/弹出值。 JavaScript Array Ref

答案 2 :(得分:1)

这应该这样做

$("#form").submit(function(){  
   var answerlist = "first";  
   var answerlist = answerlist + "," + $("#get_answer").val();  
   alert(answerlist);  
});

修改

DEMO

答案 3 :(得分:1)

您正在初始化函数内部变量的值,所以很自然地,当它再次被调用时,该值将返回 first

在函数外部初始化它。

答案 4 :(得分:0)

试试这个......

var answerlist = answerlist + "," + $("#get_answer").val();