jQuery数组参数和each()

jQuery array parameter and each()

本文关键字:each 数组 参数 jQuery      更新时间:2023-09-26

我是jQuery世界的新手,还在学习。我试图理解如何传递一个数组参数,从"each()"循环读取数据。让我试着解释一下(对不起,我的母语是葡萄牙语)。

我的原始代码如下:

$('#relatorio').DataTable({
   (...)
   columns: [
      {visible:$('#c1').is(':checked')},
      {visible:$('#c2').is(':checked')},
      {visible:$('#c3').is(':checked')}
   ]
});

由于我将在几个地方(报告)使用它,所以我做了一个.JS文件。但是,在每个报告中,我都会有不同的复选框。所以我想扫描每个复选框并动态地挂载对象数组。我在每个复选框中添加了一个类"colsel",所以我可以这样做:

var vCada=[];
$('.colsel').each(function(){ vCada.push({visible:$(this).is(':checked')}); });

好的,但现在我不知道如何直接在那里替换这个。

我成功地创建了一个返回对象数组的函数:

function StatusCols() {
  var vCada=[];
  $('.colsel').each(function(){ vCada.push({visible:$(this).is(':checked')}); });
  return vCada;
}

然后:

columns: StatusCols()

但我对此并不满意,我的新手知识对我没有帮助:(

我试过:

columns: function() {
   var vCada=[];
   $('.colsel').each(function(){ vCada.push({visible:$(this).is(':checked')}); });
   return vCada;
 }

那么,我的错误在哪里?有人能帮我(教我)吗?

谢谢!

谢谢@blex。已解决。解决方案:

columns: function() {
   var vCada=[];
   $('.colsel').each(function(){ vCada.push({visible:$(this).is':checked')}); });
   return vCada;
 }()

意思是:function(){…}()