Jquery - 获取复选框值数组

use*_*240 0 javascript checkbox jquery

我与几个复选框name="location[]"和每个复选框具有不同的值value="3"或者value="5"等我想知道如何在jQuery中,当这些复选框被选中把数组里面的值称为location[]?这是我的HTML:

<ul id="searchFilter">
<li class=""><input type="checkbox" name="location[]" class="cb_location" value="1">Toronto</li>
<li class=""><input type="checkbox" name="location[]" class="cb_location" value="3">New York</li>
<li class=""><input type="checkbox" name="location[]" class="cb_location" value="6">London</li>
<li class=""><input type="checkbox" name="location[]" class="cb_location" value="5">Paris</li>
<li class=""><input type="checkbox" name="location[]" class="cb_location" value="4">Berlin</li>             
</ul>
Run Code Online (Sandbox Code Playgroud)

以及我到目前为止得到的东西:

var $checkboxes = $("input:checkbox");
var opts = [];
$checkboxes.each(function(){
     if(this.checked){
     opts.push(this.name);
}
Run Code Online (Sandbox Code Playgroud)

当我检查另一个项目时,这会返回location[]并添加另一个location[].

请帮忙.

我还有其他复选框,价格[],sqft [] ...我希望保持复选框在同一个地面,所以数组在1个数组...我希望这是有道理的.

Ror*_*san 6

您可以使用:checked选择器并map()从一组匹配的元素创建一个数组.试试这个:

var opts = $(":checkbox:checked").map(function() {
    return $(this).val();
}).get();
Run Code Online (Sandbox Code Playgroud)

示例小提琴