jQuery方法'hasClass'在FF中运行良好,但在chrome中运行不正常

时间:2014-03-05 08:50:46

标签: jquery

我正在使用基础框架并使用轨道滑块,我创建了一种方法来获取幻灯片放映的实际显示幻灯片索引。在firefox中一切正常,函数返回正确的实际幻灯片索引,但在Chrome中它返回'-1',尽管HTML代码包含所请求的元素。

// function for getting the actual slide index of a slide show
function getActualSlideIndex(){
    $counter = 0;
       $( '#featured1 > li' ).each(function (){
           console.log($( this ));
           if ($(this).hasClass('active')){
               return $counter;
           }
          $counter++; 
       });
    return -1;
}

2 个答案:

答案 0 :(得分:1)

您的return $counter从您传递给each的内部回调中返回,而不是从外部函数返回。你可能想要这个:

// function for getting the actual slide index of a slide show
function getActualSlideIndex(){
      $counter = 0;
       $( '#featured1 > li' ).each(function (){
           if ($(this).hasClass('active')){
               return false;
           }
          $counter++; 
       });
      return $counter || -1;
}

答案 1 :(得分:1)

可以简化为

function getActualSlideIndex() {
    var index = $('#featured1 > li.active').index();
    return index == -1 ? -1 : index + 1;
}

演示:Fiddle