JQuery
的新手,我有以下代码,我认为这有点过头了,因为我正在尝试将返回的值与选择的按钮进行匹配,并添加/删除{{1 }}。
HTML代表星期几按钮
class
在网站上提供
DataTable数据
当我打电话并从<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
答案 0 :(得分:4)
您要遵循的技术称为“不要重复自己”,简称DRY。
在这种情况下,day
始终与要定位的元素的id
相同,因此您可以从中手动构建一次选择器字符串。您也可以使用toggleClass()
来代替备用addClass()
和removeClass()
的调用。试试这个:
splitSelectedDays.forEach(day => {
let dayName = day.trim().toLowerCase();
$('#' + dayName).toggleClass('btn-default btn-primary');
})