Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery className.indexOf()有问题_Jquery - Fatal编程技术网

Jquery className.indexOf()有问题

Jquery className.indexOf()有问题,jquery,Jquery,我对className.indexOf有问题 这是密码 $('#energie').click(function() { if(this.className.indexOf('active1, active2')!=-1){} else{ if(this.className.indexOf('inactive1')!=-1){ $('#navigation div').removeClass(); $(this).addClass('active

我对className.indexOf有问题

这是密码

$('#energie').click(function() {
     if(this.className.indexOf('active1, active2')!=-1){}
     else{
     if(this.className.indexOf('inactive1')!=-1){
     $('#navigation div').removeClass();
     $(this).addClass('active1');
     $(this).siblings().addClass('inactive2');
     }
     else {
     $('#navigation div').removeClass();
     $(this).addClass('active2');
     $(this).siblings().addClass('inactive1');
     }
             $("#maincontent > div:visible").fadeOut(300, function(){
         $("div.energiewende").fadeIn(450);
                  ]);
          }

  )};

问题是,如果.this的className是active1或active2,则会触发else函数,尽管它不应该被触发。

您的条件检查是检查是否将active1作为字符串激活,即使类名在内部不是这样表示的,它们只是用空格分隔

如果您使用的是jQuery,则应使用hasClass函数:

if($(this).hasClass('active1') || $(this).hasClass('active2'))
   // Do Stuff
这里使用的indexOf纯粹是一个字符串方法,与CSS类无关。这意味着.className.indexOf'active1,active2'在class属性的内容中查找文本字符串'active1,active2'。它不会分别查找active1和active1

因为您使用的是jQuery,所以应该改用它的hasClass方法:

if ($(this).hasClass('active1') || $(this).hasClass('active2')) {
   // ...
}
您应该使用hasClass函数-