我正在尝试获取当前选中的所有复选框的值,并将它们存储到一个数组中。到目前为止,我的代码如下:
$("#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.init3,context: document,jquery:"1.9.1",构造函数: function,init: function…]
我只想要身份证(在这种情况下前3项)。
通过使用$.each
并将值推入数组,我可以获得所需的输出:
$("#find-table input:checkbox:checked").each(function(){ myArray.push($(this).val()); })
"51729b62c9f2673e4c000004","517299e7c9f26782a7000003","51729975c9f267f3b5000002“
然而,我喜欢使用$.map
,因为它为我节省了一行代码,而且更漂亮。
谢谢
发布于 2013-04-23 21:52:38
在最后调用.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()来处理基本数组是很常见的。
发布于 2013-04-23 21:54:33
$(document).ready(function(){
var searchIDs = $('input:checked').map(function(){
return $(this).val();
});
console.log(searchIDs.get());
});
只需调用get(),您就可以获得规范中所写的数组:http://api.jquery.com/map/
$(':checkbox').map(function() {
return this.id;
}).get().join();
发布于 2013-04-23 21:50:18
您需要在.map()
函数的末尾添加.toArray()
$("#merge_button").click(function(event){
event.preventDefault();
var searchIDs = $("#find-table input:checkbox:checked").map(function(){
return $(this).val();
}).toArray();
console.log(searchIDs);
});
https://stackoverflow.com/questions/16170828
复制相似问题