Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t似乎+;1个javascript变量_Javascript_Jquery - Fatal编程技术网

Can';t似乎+;1个javascript变量

Can';t似乎+;1个javascript变量,javascript,jquery,Javascript,Jquery,我试图在前一个数字之后添加一个1到变量中,以便在用户追加字段时将其添加到文本框的值中。在这个阶段,它从一开始,点击加号图标,它变为二。但再按一次,它就会保持在2 我如何在前面的数字上加1 function addAucField() { var fieldCount = 1; var newCount = parseInt(fieldCount+1); $("#addField").append("<br /><br />\n<input t

我试图在前一个数字之后添加一个1到变量中,以便在用户追加字段时将其添加到文本框的值中。在这个阶段,它从一开始,点击加号图标,它变为二。但再按一次,它就会保持在2

我如何在前面的数字上加1

function addAucField() {
    var fieldCount = 1;
    var newCount = parseInt(fieldCount+1);
    $("#addField").append("<br /><br />\n<input type=\"text\" name=\"aucSpots[]\" placeholder=\"Spot "+newCount+"\" class=\"span9\">");
    return false;
}
函数addAucField(){
var fieldCount=1;
var newCount=parseInt(fieldCount+1);
$(“#addField”).append(“

\n”); 返回false; }
您正在添加字段计数。。所以当点击时,fieldCount为1,函数得到2..bravoo。。很好。。但是第二次点击字段计数再次为1。。。因此得到2(因此您的函数很好…),但输出不正确…,因此将
fieldCount
放在函数外部。。并将其更改为newcount的值。。下次fieldCount为2,您将得到3

应该是

 var fieldCount = 1;
 function addAucField() {
    var newCount = parseInt(fieldCount+1);
    fieldCount=newCount;
    $("#addField").append("<br /><br />\n<input type=\"text\" name=\"aucSpots[]\" placeholder=\"Spot "+newCount+"\" class=\"span9\">");
   return false;
}
var fieldCount=1;
函数addAucField(){
var newCount=parseInt(fieldCount+1);
fieldCount=newCount;
$(“#addField”).append(“

\n”); 返回false; }
如何更改
var newCount=parseInt(fieldCount+1)
into
var newCount=parseInt(fieldCount)+1


(未测试)

我认为问题在于每次调用函数addAucField()时,fieldCount变量都被设置回1。尝试在函数外部定义它。

只需创建一个闭包,并实际增加
字段计数

var addAucField = (function() {
    var fieldCount = 1;
    return function() {    
        var newCount = ++fieldCount; // increment fieldCount
        $("#addField").append("<br /><br />\n<input type=\"text\" name=\"aucSpots[]\" placeholder=\"Spot "+newCount+"\" class=\"span9\">");
        return false;
    };
})();

parseInt
调用有点毫无意义,不是吗?请遵循您的代码。。。自上而下。。。首先将
fieldCount
设置为1,然后将
newCount
设置为
fieldCount
的内容(即1)加1。因此
newCount
将始终为2。剩下的你可以自己搞定了我怀疑你试图简化这个问题的代码?@devnull69-你不认为我一直在尝试吗?无论发生什么情况,它都保持为2。您需要将
fieldCount
存储在
addAucField()
之外,并且真正地添加
fieldCount
的值
fieldCount
除了设置为1外,从不设置任何值。在方法之外定义它不会改变这一点。(虽然这是合理的第一步)。它实际上是在函数内部递增的,那么为什么在函数外部定义变量不能改变任何事情呢?它在函数内部不会递增
foo=bar+1
不修改
bar
。是的,你是对的,对不起,我没有看到他忘记将新值写入变量,你不会说这是“用佳能射麻雀”?@devnull69:如果我可能引入一种OP可能不知道的技术,这是合理的。
var fieldCount = 1;
function addAucField(){
    var newCount = ++fieldCount; // increment fieldCount
    $("#addField").append("<br /><br />\n<input type=\"text\" name=\"aucSpots[]\" placeholder=\"Spot "+newCount+"\" class=\"span9\">");
    return false;
 };