jQuery将选中的复选框的值获取到数组中

我试图获取当前选中的所有复选框的值,并将它们存储到数组中。到目前为止,这是我的代码:


 $("#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,因为它可以节省一行代码并且更漂亮。


皈依舞
浏览 764回答 3
3回答

梦里花落0921

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

qq_遁去的一_1

我对您的代码进行了一些重构,并相信我附带了您正在寻找的解决方案。基本上,不是将其设置searchIDs为.map()I 的结果,而是将值推入数组中。$("#merge_button").click(function(event){&nbsp; event.preventDefault();&nbsp; var searchIDs = [];&nbsp; $("#find-table input:checkbox:checked").map(function(){&nbsp; &nbsp; searchIDs.push($(this).val());&nbsp; });&nbsp; console.log(searchIDs);});
打开App,查看更多内容
随时随地看视频慕课网APP