1

我想遍历几个输入字段,然后添加到order数组中。

完成后,each()我想用数组调用addTask函数。order但。

当我通过控制台运行时,它会跳转到addTask(order)并且只得到 1 个结果

当我将order数组移出函数时,它不知道它在那里。完成后将其重新纳入范围是可取的each()

// Start adding orders to display
$("#btn-new-line").on('click', function(){
 $("input:text").each(function(index, element){
     var elem = $(element);
     var order = [] ;
     order.push(elem.val()+ " ");
});
addTask(order); //* unresolved variable *
});
4

5 回答 5

2

您在每次循环时都会覆盖您的“订单”变量。

// Start adding orders to display
$("#btn-new-line").on('click', function(){
   var order = [] ;
   $("input:text").each(function(index, element){
       var elem = $(element);
       order.push(elem.val()+ " ");
   });
   addTask(order); //* unresolved variable *
});
于 2013-10-09T20:27:43.387 回答
0

像这样声明它:

$("#btn-new-line").on('click', function(){
   var order = [] ;
    $("input:text").each(function(index, element){
        var elem = $(element);
        order.push(elem.val()+ " ");
    });
    addTask(order); //* unresolved variable *
});
于 2013-10-09T20:27:44.593 回答
0
// Start adding orders to display
var order = [] ;
$("#btn-new-line").on('click', function(){
 $("input:text").each(function(index, element){
     var elem = $(element);
     order.push(elem.val()+ " ");
});
addTask(order); //* unresolved variable *
});
于 2013-10-09T20:27:56.363 回答
0

在您的点击处理程序中声明您的order变量:

// Start adding orders to display
$("#btn-new-line").on('click', function(){
   var order = [] ;

   $("input:text").each(function(index, element){
     var elem = $(element);
     order.push(elem.val()+ " ");   // order still accessible through the enclosing function.
   });
  addTask(order);

});

于 2013-10-09T20:27:56.820 回答
-3

订单范围仅限于回调,因为您在其中创建而不是扩展它。

$("#btn-new-line").on('click', function () {
    $("input:text").each(function (index, element) {
        var elem = $(element);
        var order = [];
        order.push(elem.val() + " ");
        addTask(order); //* unresolved variable *
    });
});
于 2013-10-09T20:27:34.513 回答