为什么我不能在for循环中使用这个变量?

时间:2016-10-23 20:12:37

标签: javascript forms loops input

所以我遇到运行此函数循环的问题。我似乎无法在for循环中使用 var formappend ,即使我在表单中输入数字时, var formappend 会向控制台返回一个数字。

var formappend = $('input[name=inputform]').val();
  for (var i = 0; i < formappend; i++){
      $('button').one('click', function(i) {
            var newblock = $("<div class='block'></div>").text("");
            $('#funbox').append(newblock);
                });
  }

由于

2 个答案:

答案 0 :(得分:0)

formappend不是整数,它是从此调用返回后的字符串:

$('input[name=inputform]').val();

尝试在结果上调用parseInt():

var formappend = parseInt($('input[name=inputform]').val());

此外,我认为您打算调用.on方法,而不是按钮上的.one方法

答案 1 :(得分:0)

首先,您需要在点击处理程序中运行'for'循环。目前你在'for'循环中绑定一个click处理程序,所以试试这个:

$('button').on('click', function(i) {
    $('#funbox').text('');
    var formappend = parseInt($('input[name=inputform]').val());
    if(isNaN(formappend)) return false;

    for (var i = 0; i < formappend; i++){      
        var newblock = $("<div class='block'></div>").text("");
        $('#funbox').append(newblock);
    }
});

检查一下: https://jsfiddle.net/s24edozb/5/