缩短jquery中的大型重复if语句

时间:2018-06-22 20:50:16

标签: jquery if-statement

我想知道缩短或清理这样的if else语句的最佳方法是什么:

FileList

3 个答案:

答案 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>

相关问题