用jquery链接方法

时间:2014-08-13 16:31:46

标签: javascript jquery

我有一个表格,第一列由复选框组成。我想用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

为什么我没有上面列出的数组?我怎样才能在一份声明中解决这个问题?

2 个答案:

答案 0 :(得分:7)

.map通过jQuery对象的类似数组的复选框列表,创建一个类似jQuery数组的对象,其中包含[1,2,3]。所以诀窍是在最后添加链式get(),然后一旦map()完成构建ID列表,你就会成功调用它:

var searchIDs = $('input:checked').map(function(){
    return $(this).val();
}).get();

例如

http://jsfiddle.net/sifriday/3k7oy3dq/

答案 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);
}