尝试迭代所有复选框并检查是否已选中时,我遇到了一些困难。这是代码:
content = "<table class=\"filter-table\">";
content += "<tr><td><input class=\"pssLabel\" type=\"checkbox\" onclick=\"toggleOverlayer('pssLabel')\">Show Label</td></tr>" +
"<tr><td><div id=\"pss\"></div></td></tr>";
content += "<tr><td colspan=\"2\" style=\"padding:5px;font-size:15px;color:black;\">Development Type</td></tr>";
content += "<tr><td><input value='Commercial and Residential' class=\"pssCheckBox\" type=\"checkbox\" onclick='queryPSS()' >Commercial and Residential</td><td><input value='Commercial' class=\"pssCheckBox\" type=\"checkbox\" onclick='queryPSS()' >Commercial</td></tr>";
content += "<tr><td><input value='Heavy Vehicle Park' class=\"pssCheckBox\" type=\"checkbox\" onclick='queryPSS()'>Heavy Vehicle Park</td><td><input value='Hospital' class=\"pssCheckBox\" type=\"checkbox\" onclick='queryPSS()'>Hospital</td></tr>";
content += "<tr><td><input value='Hotel' class=\"pssCheckBox\" type=\"checkbox\" onclick='queryPSS()'>Hotel</td><td><input value='Industrial' class=\"pssCheckBox\" type=\"checkbox\" onclick='queryPSS()'>Industrial</td></tr>";
content += "<tr><td><input value='Industrial-White' class=\"pssCheckBox\" type=\"checkbox\" onclick='queryPSS()'>Industrial-White</td><td><input value='Office' class=\"pssCheckBox\" type=\"checkbox\" onclick='queryPSS()'>Office</td></tr>";
以下是我迭代所有复选框并执行检查的方法:
function queryPSS() {
var type_filter = new Array();
//Iterate thru all checkbox
$(":checkbox").each(function(index, element) {
if($(this).is(':checked'))
{
type_filter.push($(this).val());
}
});
}
但是,有没有办法让我跳过第一个复选框(无论是否检查)并检查其他复选框并存储到数组中。
提前致谢。
答案 0 :(得分:2)
只需添加一个简单的if条件,如
if (index !== 0)
完整代码:
$("input:checkbox").each(function(index, element) {
if (index !== 0) { //skip first checkbox
if($(this).is(':checked')) {
type_filter.push($(this).val());
}
}
});
答案 1 :(得分:1)
由于您已将pssLabel类分配给第一个输入,因此可以跳过该类的复选框:
$(":checkbox").each(function(index, element) {
if($(this).hasClass('pssLabel')) return;
if($(this).is(':checked'))
{
type_filter.push($(this).val());
}
});
答案 2 :(得分:0)
您可以使用:gt(0)
$(":checkbox:gt(0)").each(function(index, element) {
答案 3 :(得分:0)
您只能定位类pssCheckBox
的复选框,因为第一个没有。
function queryPSS() {
var type_filter = $("input.pssCheckBox:checked").map(function (index, element) {
return this.value;
}).get();
}
另请查看使用.map()
答案 4 :(得分:-1)
是的,使用 .map()
就像楼上
var type_filter = $("input[name='instanceCheck']:checkbox:checked").map(function(index, element) {
return this.value;
}).get();
这个回调是同步函数,每个回调都是异步函数