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

Why can't I use this variable in my for loop?

本文关键字:变量 不能 for 循环 为什么      更新时间:2023-09-26

所以我有一个问题,运行这个函数的循环。我似乎不能在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);
                });
  }

谢谢

首先,您需要在click处理程序中运行'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/

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

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

尝试对结果像这样调用parseInt():

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

另外,我想你的意思是调用.on方法,而不是按钮上的.one方法