我有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>
以及我所得到的jquery:
var $checkboxes = $("input:checkbox");
var opts = [];
$checkboxes.each(function(){
if(this.checked){
opts.push(this.name);
}
这会返回location[]
,并在我检查另一个项目时添加另一个location[]
。
请帮忙。
我还有其他复选框,价格[],sqft [] ...我希望将复选框保持在同一个地面,所以数组在1个数组中...我希望这是有意义的。
答案 0 :(得分:6)
您可以使用:checked
选择器和map()
从一组匹配的元素创建数组。试试这个:
var opts = $(":checkbox:checked").map(function() {
return $(this).val();
}).get();