2012-04-21 124 views
0

我有这个js ....如何向变量添加字符串;

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

我试图用id #get_answeranswelist变量添加输入字段的值....

我期望answerlist现在= first move //其中输入字段的值是move并且是结果是成功的...

现在我第二次尝试向answerlist变量添加另一个值... 。

on
我希望结果会是first move on

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

有人可以帮助我plsss?

我想是的值(字符串)递增到变量answerlist

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

回答

1

你初始化变量的值在函数内部,那么自然,当它再次呼吁该值将返回到第一

在函数之外初始化它。

+0

谢谢先生....你让我明白......非常感谢你......我忘了把变量answelist放在函数之外...... – 2012-04-21 12:42:32

+0

这不会像预期的那样工作,如果同一个变量已经在其他地方了。 JavaScript使用函数级别的范围,因此您的初始化变量很可能会在全局范围内结束。基本上,问题与其他语言中的全局变量相同:*意想不到的后果*。 – 2012-04-22 10:28:12

1

这应该这样做

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

编辑:

DEMO

+0

仍然没有工作... – 2012-04-21 12:35:23

+0

用dmeo更新了我的答案 – Dhiraj 2012-04-21 12:37:08

+0

它不是我正在寻找的先生...请仔细阅读我的文章... – 2012-04-21 12:38:40

0

尝试......

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

不是我一直在寻找的答案... – 2012-04-21 12:38:54

+1

声明变量函数之前的函数! ! var answerlist =“first”; – Vaishu 2012-04-21 12:46:23

2

随着你在这里的片段,你永远不会有超过“第一,移动”,因为你永远在第二行设置答案列表,它只会在表单提交时生成。所以除非您的输入值是“继续前进”,否则不会显示预期的结果。

你可以把answerlist变量的功能范围之外,如果你想,每当输入被转换添加值...

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

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

+0

我发现问题先生..在@mightyuhu的帮助下....我只需要做的就是把函数外的answerlist变量...但仍然谢谢你的主席先生的帮助.. – 2012-04-21 12:44:07

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()为琐碎的事情。

+0

谢谢你分享这个 – Dhiraj 2012-04-21 13:14:56