Javascript 将IF语句压缩为似乎过了头
对于JQuery来说,我有以下代码,我认为这有点过分了,因为我所要做的就是将返回值与一组按钮匹配,并添加/删除一个类 星期天按钮的HTML Console.Log返回的数据Javascript 将IF语句压缩为似乎过了头,javascript,jquery,Javascript,Jquery,对于JQuery来说,我有以下代码,我认为这有点过分了,因为我所要做的就是将返回值与一组按钮匹配,并添加/删除一个类 星期天按钮的HTML Console.Log返回的数据 你想要遵循的技巧叫做“不要重复你自己”,或者简称为“干” 在本例中,日期始终与要定位的元素的id相同,因此可以从该日期手动构建选择器字符串一次。您还可以使用toggleClass而不是交替的addClass和removeClass调用。试试这个: splitSelectedDays.forEach(day => {
你想要遵循的技巧叫做“不要重复你自己”,或者简称为“干” 在本例中,日期始终与要定位的元素的id相同,因此可以从该日期手动构建选择器字符串一次。您还可以使用toggleClass而不是交替的addClass和removeClass调用。试试这个:
splitSelectedDays.forEach(day => {
let dayName = day.trim().toLowerCase();
$('#' + dayName).toggleClass('btn-default btn-primary');
})
提示:传递给$function的参数是一个字符串。我想这差不多就是了。我知道,只要我选择一个数据行,其中有一天是可用的,它就可以完成,但仍然会突出显示所有数据行。我已经添加了一张DataTable dataSorry的图片我的坏我有一个决赛如果我没有注释掉的话如果“All Days”被返回,我错过了a=所以它总是落在里面。非常好的回答,谢谢
var selectedDays = modifyRecordData.selectedDays;
var splitSelectedDays = selectedDays.split(',');
splitSelectedDays.forEach(day => {
let val = day.trim();
if(val == 'Mon') {
$('#mon').removeClass('btn-default');
$('#mon').addClass('btn-primary');
}
if (val == 'Tue') {
$('#tue').removeClass('btn-default');
$('#tue').addClass('btn-primary');
}
if (val == 'Wed') {
$('#wed').removeClass('btn-default');
$('#wed').addClass('btn-primary');
}
if (val == 'Thur') {
$('#thur').removeClass('btn-default');
$('#thur').addClass('btn-primary');
}
if (val == 'Fri') {
$('#fri').removeClass('btn-default');
$('#fri').addClass('btn-primary');
}
if (val == 'Sat') {
$('#sat').removeClass('btn-default');
$('#sat').addClass('btn-primary');
}
if (val == 'Sun') {
$('#sun').removeClass('btn-default');
$('#sun').addClass('btn-primary');
}
})
splitSelectedDays.forEach(day => {
let dayName = day.trim().toLowerCase();
$('#' + dayName).toggleClass('btn-default btn-primary');
})