将选中的复选框推送到数组并从数组中获取值以构建查询字符串

Push checked checkboxes to array and get the values from array to build a query string

本文关键字:数组 获取 构建 字符串 查询 复选框      更新时间:2023-09-26

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

<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>";                          
哦,

这就是为什么我喜欢.map()函数:

var checkboxArray = $(".LocChk:checked").map(function() {
    return this.value;
}).get();
var values = [];
$.each('input[type=checkbox]:checked',function(){
    values.push($(this).val());
}); 

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