jay*_*Ann 22 arrays checkbox jquery
我没有这么多复选框:
<input type="checkbox" id="mango" value="mango" /> <label>MANGO</label><br>
<input type="checkbox" id="santol" value="santol" /> <label>SANTOL</label><br>
<input type="checkbox" id="guava" value="guava" /> <label>GUAVA</label><br>
<input type="checkbox" id="lomboy" value="lomboy" /> <label>LOMBOY</label><br>
<input type="checkbox" id="apple" value="apple" /> <label>APPLE</label><br>
<input type="checkbox" id="orange" value="orange" /> <label>ORANGE</label><br>
...................<>
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试做的是检查所有ID的复选框,而不检查并放入数组.像这样的东西:
"fruitsGranted":["apple","lomboy","orange"]; //check is true
"fruitsDenied":["mango","santol","guava"]; //check false
Run Code Online (Sandbox Code Playgroud)
可以请有人告诉我该怎么做.谢谢.
Jam*_*gne 43
var someObj={};
someObj.fruitsGranted=[];
someObj.fruitsDenied=[];
$("input:checkbox").each(function(){
var $this = $(this);
if($this.is(":checked")){
someObj.fruitsGranted.push($this.attr("id"));
}else{
someObj.fruitsDenied.push($this.attr("id"));
}
});
Run Code Online (Sandbox Code Playgroud)
Mo *_*our 25
我想我的版本更短了:
var idSelector = function() { return this.id; };
var fruitsGranted = $(":checkbox:checked").map(idSelector).get();
var fruitsDenied = $(":checkbox:not(:checked)").map(idSelector).get();
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到它:http://jsfiddle.net/XPMjK/3/
我会这样做:
var all, checked, notChecked;
all = $("input:checkbox");
checked = all.filter(":checked");
notChecked = all.not(":checked)");
Run Code Online (Sandbox Code Playgroud)
之后,您可以使用jQuery.map来获取每个集合的ID.
var checkedIds = checked.map(function() {
return this.id;
});
var notCheckedIds = notChecked.map(function() {
return this.id;
});
Run Code Online (Sandbox Code Playgroud)