为什么jQuery has()不起作用?

为什么jQuery has()不起作用?,jquery,css,Jquery,Css,我正在尝试开发一个评级系统。一切都完成了。但是,我无法显示悬停效果和鼠标移出效果。当用户将鼠标悬停在星号上时,他将把光标放在星号上,我将更改该类,然后将其还原为上一个 问题: 如果我添加has、hasClass、find、is函数,那么它就不起作用了。这个jQuery函数是否有放置这些函数的顺序?或者我的代码有什么问题 HTML代码: 而不是使用过滤器: $('.ratingul li').hover(function(){ $(this).filter('.star_em').prev

我正在尝试开发一个评级系统。一切都完成了。但是,我无法显示悬停效果和鼠标移出效果。当用户将鼠标悬停在星号上时,他将把光标放在星号上,我将更改该类,然后将其还原为上一个

问题: 如果我添加has、hasClass、find、is函数,那么它就不起作用了。这个jQuery函数是否有放置这些函数的顺序?或者我的代码有什么问题

HTML代码:


而不是使用过滤器:

$('.ratingul li').hover(function(){
    $(this).filter('.star_em').prevAll().andSelf().removeClass('ratings_star_empty');
    $(this).filter('.star_em').prevAll().andSelf().addClass('ratings_star');
});

$('.ratingul li').mouseout(function(){
    $(this).filter('.star_em').prevAll().andSelf().addClass('ratings_star_empty');
    $(this).filter('.star_em').prevAll().andSelf().removeClass('ratings_star');
});

你可以试试这个代码,你可能会得到你期望的结果

$('.ratingul li').hover(function(){
    if($(this).hasClass('star_em'))
    $(this).prevAll().andSelf().removeClass('ratings_star_empty');
    else
    $(this).prevAll().andSelf().addClass('ratings_star');
 });

  $('.ratingul li').mouseout(function(){
     if($(this).hasClass('star_em'))
     $(this).has('.star_em').prevAll().andSelf().addClass('ratings_star_empty');
     else
     $(this).prevAll().andSelf().removeClass('ratings_star');
  });

我找到了你们所有人的真实答案,见我的答案:

JS:


我认为has hasClass&is返回布尔值,因此您不能像这样使用。请共享HTMLN注意,$this.has'star_em'行缺少选择类的点,它应该是$this.has'。star_em'首先,您在一个点上有一个输入错误,在您想要的地方使用'star_em'。star。第二,我认为你应该使用过滤器,而不是像你可以使用一个简单的旧:悬停风格,并保存一些工作…我已经遵循这一点。但它不能正常工作。你能根据js检查我的html吗?你能添加呈现的html而不是PHP模板吗?
$('.ratingul li').hover(function(){
    $(this).filter('.star_em').prevAll().andSelf().removeClass('ratings_star_empty');
    $(this).filter('.star_em').prevAll().andSelf().addClass('ratings_star');
});

$('.ratingul li').mouseout(function(){
    $(this).filter('.star_em').prevAll().andSelf().addClass('ratings_star_empty');
    $(this).filter('.star_em').prevAll().andSelf().removeClass('ratings_star');
});
$('.ratingul li').hover(function(){
    if($(this).hasClass('star_em'))
    $(this).prevAll().andSelf().removeClass('ratings_star_empty');
    else
    $(this).prevAll().andSelf().addClass('ratings_star');
 });

  $('.ratingul li').mouseout(function(){
     if($(this).hasClass('star_em'))
     $(this).has('.star_em').prevAll().andSelf().addClass('ratings_star_empty');
     else
     $(this).prevAll().andSelf().removeClass('ratings_star');
  });
 $('.ratingul li').hover(function(){
    if($(this).hasClass('star_em')){
        $(this).prevAll().andSelf().removeClass('ratings_star_empty');
        $(this).prevAll().andSelf().addClass('ratings_star');
    }
});

$('.ratingul li').mouseout(function(){
        $('li').siblings('.star_em').addClass('ratings_star_empty');
        $('li').siblings('.star_em').removeClass('ratings_star');
});