我想知道缩短或清理这样的if else语句的最佳方法是什么:
FileList
答案 0 :(得分:2)
var classes = [
"home",
"tasks",
"roadmap",
"staff",
"timesheet",
"global-tasks",
"deleted-tasks"
];
classes.forEach(function(className) {
if ($(this).hasClass(className)) {
$("body").addClass(className);
}
});
答案 1 :(得分:0)
另一种解决方案是对该元素使用属性,例如data-body-class
。
$('body').addClass($(this).data('body-class'));
答案 2 :(得分:0)
使用过滤器获取要添加的第一个类。
var classes = [ 'home', 'tasks', 'roadmap', 'staff', 'timesheet', 'global-tasks', 'deleted-tasks' ];
var $thingToTest = $('.thingToTest');
$('.result').addClass(function(){
return classes.filter(function(clazz){
return $thingToTest.hasClass(clazz);
})[0];
});
.result { display: none; }
.result.staff { display: inherit; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="thingToTest staff global-tasks"></div>
<span class="result">Result</span>