jQuery检查元素是否有类

Dej*_*avu 2 javascript jquery

我试图检查一个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');
}
Run Code Online (Sandbox Code Playgroud)

小提琴:https: //jsfiddle.net/9o70dbzz/2/

Son*_*nny 5

使用.hasClass()函数.

if($("body").hasClass("page1")){
  $("h1").html("heading1");
}
else if($("body").hasClass("page2"){
  $("h1").html("heading2");
}
else {
  $("h1").html("default");
}
Run Code Online (Sandbox Code Playgroud)

  • Sonny所说的是有道理的,因为代码示例使用多个类.`.hasClass()`方法类似于`if(className.indexOf('page1')> -1){...}`.这些都不适合转换.但是,您可以使用带开关的唯一ID属性.比如:`<body id ="page1">`或`<body id ="page2">`然后使用`switch($("body").attr("id")){...}`.原因是只有1个值传入带有id的开关,而不是带有类的多个值.所以记住开关使用单值键和if/else语句使用多个输入键是很好的. (2认同)