【问题标题】:Declare a function separately for .each()为 .each() 单独声明一个函数
【发布时间】:2020-11-13 00:58:18
【问题描述】:

我想单独声明一个函数并将其用于类的每个循环。该函数只是为属于同一类的每个元素分配一个序列化的 id。当函数被声明和调用时它工作正常:-

$(document).ready(function(){
  $(".item-input").each(function (index,object){
    var current_id = $(this).attr('id');
    var new_id = current_id+index;
    $(this).attr('id',new_id);
  });
});

但是,当我将函数调用与声明分开时。它不起作用并引发异常。

function id_serializer(i,obj){
  var current_id = $(this).attr('id');
  var new_id = current_id+i;
  $(this).attr('id',new_id);
}

$(document).ready(function(){
  $(".item-input").each(id_serializer(i,obj));
});

它引发以下异常:

jQuery.Deferred exception: i is not defined ReferenceError: i is not defined
jquery.min.js:2 Uncaught ReferenceError: i is not defined

需要帮助...

【问题讨论】:

  • $(".item-input").each(id_serializer);
  • $(".item-input").each(function(i,obj){ id_serializer(i,obj) });
  • 冗余重复有冗余

标签: javascript jquery function each


【解决方案1】:
$(document).ready(function() {
  $(".item-input").each(id_serializer(i,obj)); // You are calling function inside .each
});

如下更新

$(document).ready(function() {
  $(".item-input").each(id_serializer); // Just pass the callback function instead
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 2016-05-16
    • 2017-03-11
    • 1970-01-01
    相关资源
    最近更新 更多