这是我无法弄清楚的。
<input type="checkbox" id="ckbox1" onclick="getFunc(1)" />
<input type="checkbox" id="ckbox2" onclick="getFunc(2)" />
JS
getFunc(val){
if($("#ckbox"+val).attr('checked',true)){
lock_arr.push({"name":val});
}
else{
lock_arr.pop({"name":val});
}
}
我想要的是lock_arr
如果选中所有对象,则应该填充一个对象数组。如果未选中复选框,则数组将弹出取消选中的值并仅使用选中的值占用。
任何帮助将不胜感激
答案 0 :(得分:0)
尝试:
<input type="checkbox" id="ckbox1" class="checkit" value = "1"/>
<input type="checkbox" id="ckbox2" class="checkit" value="2"/>
$(document).on("click",".checkit",function(){
if($(this).prop("checked") == true) {
lock_arr.push({"name":$(this).attr("value")});
} else {
lock_arr.pop({"name":$(this).attr("value")});
}
});
答案 1 :(得分:0)
这应该这样做。此外,您不能通过声明其值来弹出数组中的某些内容。
var arr = [];
$("input[type='checkbox']").on('click', function(e) {
var inp = $(this);
if (inp.is(":checked")) {
arr.push({
"name": inp.attr('value')
});
} else {
arr.forEach(function(result, index) {
if (result.name == inp.attr("value")) {
arr.splice(index, 1);
}
});
}
console.log(arr);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="ckbox1" value=1 />
<input type="checkbox" id="ckbox2" value=2 />
<input type="checkbox" id="ckbox3" value=3 />
&#13;
答案 2 :(得分:0)
你可以试试这个
function getFunc(val){
if ($("#ckbox" + val).prop("checked")) {
lock_arr.push({"name":val});
}
else{
lock_arr.pop({"name":val});
}