Javascript jQuery检查元素是否有类

Javascript jQuery检查元素是否有类,javascript,jquery,Javascript,Jquery,我试图检查HTML元素是否有类,如果有,则使用jQuery运行函数。我的代码只有在一个元素没有多个类时才有效。我相信我需要使用.hasClass()方法,但我想不出来 var pageClass = $("body").attr('class'); switch (pageClass) { case ("page1"): $('h1').html('heading1'); break; case ("page2"): $('h1').html('heading2

我试图检查HTML元素是否有类,如果有,则使用jQuery运行函数。我的代码只有在一个元素没有多个类时才有效。我相信我需要使用
.hasClass()
方法,但我想不出来

var pageClass = $("body").attr('class');
switch (pageClass) {
  case ("page1"):
    $('h1').html('heading1');
    break;
  case ("page2"):
     $('h1').html('heading2');
    break;
  default:
    $('h1').html('default');
}
小提琴: 使用该功能

if($("body").hasClass("page1")){
  $("h1").html("heading1");
}
else if($("body").hasClass("page2"){
  $("h1").html("heading2");
}
else {
  $("h1").html("default");
}

这可以通过选择器解决:

$('h1').html('default');
$('body.page1 h1').html('heading1');
$('body.page2 h1').html('heading2');

我会这样做的

$(document).ready(function() {
var element = $("body");

var classesCollection = {
    'page1': 'heading1',
    'page2': 'heading2'
};

for (var propertyName in classesCollection) {
    var propertyValue = classesCollection[propertyName];
    if (element.hasClass(propertyName)) element.html(propertyValue);
    else element.html('default');
}

});

使用if-else和hasClass()代替switch语句如果
主体包含所有3个类,您会怎么做?您是只想要第一个,还是最后一个,还是全部附加在一起?唯一的方法是使用if-else语句吗?将if/else与“hasClass”函数一起使用是最简单的方法。在这种情况下,使用switch语句太复杂了。Sonny说的有道理,因为代码示例使用多个类。
.hasClass()
方法类似于
if(className.indexOf('page1')>-1){…}
。这两种方法在交换机中都不起作用。但是,您可以将唯一id属性与开关一起使用。例如:
&然后使用
开关($(“body”).attr(“id”){…}
。原因是只有1个值被传递到id为的开关中,而不是类中的多个值。所以最好记住,开关使用单值键&if/else语句使用多个输入键。