压缩IF语句似乎已被杀死

时间:2019-03-01 09:54:34

标签: javascript jquery

JQuery的新手,我有以下代码,我认为这有点过头了,因为我正在尝试将返回的值与选择的按钮进行匹配,并添加/删除{{1 }}。

HTML代表星期几按钮

class

在网站上提供

enter image description here

DataTable数据

enter image description here

当我打电话并从<div class="form-horizontal" id="selectWeekdaysSection"> <div class="form-group"> <div class="col-md-offset-2 col-lg-4"> <button id="mon" name="weekdaysbutton" class="btn btn-default" type="button" value="Mon">Mon</button> <button id="tue" name="weekdaysbutton" class="btn btn-default" type="button" value="Tue">Tue</button> <button id="wed" name="weekdaysbutton" class="btn btn-default" type="button" value="Wed">Wed</button> <button id="thur" name="weekdaysbutton" class="btn btn-default" type="button" value="Thur">Thur</button> <button id="fri" name="weekdaysbutton" class="btn btn-default" type="button" value="Fri">Fri</button> <button id="sat" name="weekenddaysbutton" class="btn btn-default" type="button" value="Sat">Sat</button> <button id="sun" name="weekenddaysbutton" class="btn btn-default" type="button" value="Sun">Sun</button> </div> </div> </div> 取回数据时,它会预先选择DataTable的日期。我已经完成了所有这些工作,但是正如我所说的那样,不得不继续重复JSON只是为了一个不同的按钮而已,尤其是当我不得不在'01-31'的日子里做这件事时,

jQuery

IF

控制台。返回数据的日志 enter image description here

1 个答案:

答案 0 :(得分:4)

您要遵循的技术称为“不要重复自己”,简称DRY。

在这种情况下,day始终与要定位的元素的id相同,因此您可以从中手动构建一次选择器字符串。您也可以使用toggleClass()来代替备用addClass()removeClass()的调用。试试这个:

splitSelectedDays.forEach(day => {
  let dayName = day.trim().toLowerCase();
  $('#' + dayName).toggleClass('btn-default btn-primary');
})