我有一个表格,第一列由复选框组成。我想用jquery收集已检查行的值,并将它们传输到aphp函数进行处理。
到目前为止,我有:
var searchIDs = $('input:checked').map(function(){
return $(this).val();
});
返回包含已检查值的对象。
我可以使用以下方法获取这些数组:
searchIDs.get()
形式:
1,2,3等
但是,如果我这样做:
return $((this).val()).get();
我明白了:
TypeError: this.val is not a function
为什么我没有上面列出的数组?我怎样才能在一份声明中解决这个问题?
答案 0 :(得分:7)
.map通过jQuery对象的类似数组的复选框列表,创建一个类似jQuery数组的对象,其中包含[1,2,3]。所以诀窍是在最后添加链式get(),然后一旦map()完成构建ID列表,你就会成功调用它:
var searchIDs = $('input:checked').map(function(){
return $(this).val();
}).get();
例如
答案 1 :(得分:1)
请记住,如果jQuery选择是一个DOM元素数组,则可以遍历它。您可以通过查看value
属性来访问input
element的值。
var $checked = $('input:checked'),
searchIDs = [];
for (var i = 0; i < $checked.length; i++) {
searchIDs.push($checked[i].value);
}