为 .each() 单独声明一个函数

Declare a function separately for .each()

我想单独声明一个函数并将其用于 class 上的每个循环。该函数只是为属于同一 class 的每个元素分配一个序列化 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

需要帮助...

$(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
});