0

我有一堆复选框,用户可以一次检查一个或多个。我需要将所有选中的复选框抓取到一个数组中,然后从数组中抓取每个值并将每个值推送到查询字符串变量。

<div class="Cat" style="width: 155px; float: left; margin-left:15px;">
    <p>Location</p>
    <div><input class="LocChk" type="checkbox" value="United States"/>&nbsp;United States<br/></div>
    <div><input class="LocChk" type="checkbox" value="Australia"/>&nbsp;Australia<br/></div>
    <div><input class="LocChk" type="checkbox" value="Canada"/>&nbsp;Canada<br/></div>
    <div><input class="LocChk" type="checkbox" value="China"/>&nbsp; China<br/></div>
</div>

因此,我不想在以下查询变量中对选定的值进行硬编码,而是从数组中传递检查的值。假设一个用户检查了加拿大和中国,我需要将这两个值存储在一个数组中,然后在下面的查询变量中,按顺序访问它们。有人可以告诉我在 jQuery 中执行此操作的有效方法吗?

var queryText = "<View>"+
                    "<Query>"+
                        "<Where>"+
                            "<In>"+
                                "<FieldRef Name='HSCountry' />"+
                                    "<Values>"+
                                        "<Value Type='Choice'>Canada</Value>"+
                                        "<Value Type='Choice'>China</Value>"+
                                    "</Values>"+                                                
                                "</In>"+
                        "</Where>"+
                    "</Query>"+
                    "<ViewFields><FieldRef Name='Title' /></ViewFields>"+
                "</View>";                          
4

2 回答 2

4

哦,这就是我喜欢这个.map()功能的原因:

var checkboxArray = $(".LocChk:checked").map(function() {
    return this.value;
}).get();
于 2013-09-06T21:15:01.333 回答
0
var values = [];
$.each('input[type=checkbox]:checked',function(){
    values.push($(this).val());
}); 

首先,values 是一个数组,您设置它来保存所有复选框的值。然后,您使用 jQuery $.each 函数循环检查每个已选中的输入框。对于每一个被检查的值,该值都被添加到 values 数组中。然后,您可以稍后出于任何目的循环浏览它们。

于 2013-09-06T21:15:19.537 回答