问题描述
我有这段代码可以检查被选中的复选框,并显示是否全部选中,未选中或列出了所有复选框。
该代码工作正常,但我认为这已经很长时间了,我不是javascript方面的专家。 有什么办法可以使代码更短?
var Desktop = $(".multiselect.desktop input[name$='[]']:checked").map(function() {return this.value;}).get().join(', ');
if(Desktop.split(', ').length == 4){ Desktop = 'All';}
else if(Desktop.length == 0){ Desktop = 'None';} else {Desktop = Desktop;}
1楼
您可以使用三元运算符并摆脱4行。
var len = Desktop.split(', ').length;
Desktop = len === 4 ? 'All' : (len === 0 ? 'None' : Desktop);
2楼
这样的事情将更普遍地起作用,不仅在您有4个复选框的情况下:
var max = $(".multiselect.desktop input[name$='[]']").length();
var $checked = $(".multiselect.desktop input[name$='[]']:checked");
var Desktop = ($checked.length() == max)?'All':($checked.length()?$checked.map(function() {return $(this).val();}).join(', '):'None');