猿问

根据数据属性获取每个复选框集的值

我正在尝试使用 jQuery 根据数据属性获取单独的检查值列表。

以下是我的脚本,从原始问题中编辑


jQuery(document).on("click", ".refno", function () {

   var refindex = jQuery(this).data("refindex");

   //alert(refindex);

   jQuery('.datarefindex_'+ refindex ).each(function(){

        alert(refindex);//do your stuff here

   });

});

每个 下都有可变数量的复选框列表refindex。所以each我认为需要一个功能。以下是我试图捕获的数据示例。这些数据将通过 ajax 请求与其他一些数据一起发送以进行处理。


假设在这个场景中有 3 组复选框。


var list1 = array/list of checked items from list 1;

var list2 = array/list of checked items from list 2;

var list3 = array/list of checked items from list 3;

但是当我尝试上述操作时,所有复选框都被选中(每个列表有 20 个复选框),其中包含data-mainrefindex=refindex. 但我只想得到上面提到的 3 个变量。


任何支持表示赞赏。我希望我说清楚了我的问题。


慕运维8079593
浏览 177回答 2
2回答

慕容森

您可以创建一个包含数组的对象并将其传递给 Ajax。见下文。我所做的只是将项目添加到数组中。如果您想在未选中时从 Array 中删除该项目,请告诉我。<div data-refindex='1'><input type="checkbox" value='1'/> 1<input type="checkbox" value='2'/> 2<input type="checkbox" value='3'/> 3<input type="checkbox" value='4'/> 4<input type="checkbox" value='5'/> 5</div><div data-refindex='2'><input type="checkbox" value='6'/> 6<input type="checkbox" value='7'/> 7<input type="checkbox" value='8'/> 8<input type="checkbox" value='9'/> 9<input type="checkbox" value='10'/> 10</div>Javascript(需要 jQuery)var arraysObj = {};$("div input").on('click',function(e){&nbsp; var arrayId = $(e.target).parent('div').data('refindex');&nbsp; if(typeof arraysObj['group_'+arrayId] === 'undefined')&nbsp; &nbsp; arraysObj['group_'+arrayId] = [];&nbsp; if ($(e.target).is(':checked') && $.inArray($(e.target).val(),arraysObj['group_'+arrayId]) === -1)&nbsp; &nbsp; arraysObj['group_'+arrayId].push($(e.target).val())&nbsp; &nbsp; console.log( JSON.stringify(arraysObj) );})

开心每一天1111

我无法从屏幕截图中找出复选框的情况,但您可以检查是否jQuery("input[name=list1]:checked")选中所有复选框以及您的复选框是否真的全部选中(如果问题是选择器或复选框状态)。尝试在您的代码中查看活动项是否有一个类以将其与非活动项区分开来,也许您可以使用一个类来选择它,如果没有活动类,您可以在 onClick 处理程序中设置它:jQuery(this).addClass('.activeClass');以及使用此选择器的循环槽项目:`jQuery("input[name=list1].activeClass")`
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答