首页 > 解决方案 > 为 .each() 单独声明一个函数

问题描述

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

需要帮助请...

标签: javascriptjqueryfunctioneach

解决方案


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

推荐阅读