我试图获取当前选中的所有复选框的值,并将它们存储到数组中。到目前为止,这是我的代码: $("#merge_button").click(function(event){ event.preventDefault(); var searchIDs = $("#find-table input:checkbox:checked").map(function(){ return $(this).val(); }); console.log(searchIDs); });但是,此输出超出了我的需要。我不仅获得了价值,而且获得了一些我不想要的东西。[“ 51729b62c9f2673e4c000004”,“ 517299e7c9f26782a7000003”,“ 51729975c9f267f3b5000002”,prevObject:jQuery.fn.jQuery.init [3],上下文:文档,jquery:“ 1.9.1”,构造函数:函数,初始化:函数…]我只想要ID(在这种情况下为前3个项目)。通过使用$.each并将值推入数组,我得到了所需的输出:$("#find-table input:checkbox:checked").each(function(){ myArray.push($(this).val()); })[“ 51729b62c9f2673e4c000004”,“ 517299e7c9f26782a7000003”,“ 51729975c9f267f3b5000002”]但是,我想使用$.map,因为它可以节省一行代码并且更漂亮。
3 回答

梦里花落0921
TA贡献1772条经验 获得超6个赞
最后调用.get(),将生成的jQuery对象转换为真实数组。
$("#merge_button").click(function(event){
event.preventDefault();
var searchIDs = $("#find-table input:checkbox:checked").map(function(){
return $(this).val();
}).get(); // <----
console.log(searchIDs);
});
根据文档:
由于返回值是一个jQuery对象,它包含一个数组,因此在结果上调用.get()以使用基本数组是很常见的。

qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
我对您的代码进行了一些重构,并相信我附带了您正在寻找的解决方案。基本上,不是将其设置searchIDs为.map()I 的结果,而是将值推入数组中。
$("#merge_button").click(function(event){
event.preventDefault();
var searchIDs = [];
$("#find-table input:checkbox:checked").map(function(){
searchIDs.push($(this).val());
});
console.log(searchIDs);
});
添加回答
举报
0/150
提交
取消