所以我在这里遇到了一些棘手的情况。
我有一系列表单,其中包含存储为数组的选项。我正在检查索引中的正确答案的选择,因此索引和元素数量非常重要。
我的问题出现了为什么尝试连接这两个数组,这些数组保存了html复选框的已检查和未检查的值。
即:let comb = checked.concat(unchecked)
let checked = $('input:checkbox:checked').map(function() {
return this.value;}).get();
let unchecked = $('input:checkbox:not(:checked)').map(function() {
return "100"; }).get();
该代码的问题在于它会影响选择的顺序,这会破坏在特定索引处检查的代码与正确的答案。
我需要的是获取所有复选框值,并仅在选中时指定html值,否则插入一些任意值(如您所见,返回“100”)
这样的事情(非语法正确或可运行):
let checked = $('input:checkbox').map(function() {
if ('input:checkbox:checked'){ . //if checked
return this.value;}).get();}else if ('input:checkbox:not(:checked)'){ //if unchecked
return "100"; }).get();
}
答案 0 :(得分:1)
你需要map()回调中的整个条件
let checked = $('input:checkbox').map(function() {
// if checked return the value , if not return "100"
return this.checked ? this.value : '100';
}).get();
或者在你试图做的时候使用is()
进行长时间的
let checked = $('input:checkbox').map(function() {
if($(this).is(':checked')){
return this.value;
}else{
return '100';
}
}).get();