如何在jQuery中使用循环

如何在jQuery中使用循环,jquery,Jquery,我想在jQuery中使用循环,但我不知道如何编写它。 这就是我要重复的代码 $(this).parent().children('span').removeClass('on'); $(this).addClass('on').prevAll('span').addClass('on'); 一开始我用过,但没用,我该怎么办 这是我第一次写的循环 $(document).ready( function() { var score = "<%=score%>"

我想在jQuery中使用循环,但我不知道如何编写它。 这就是我要重复的代码

$(this).parent().children('span').removeClass('on');
$(this).addClass('on').prevAll('span').addClass('on');
一开始我用过,但没用,我该怎么办

这是我第一次写的循环

$(document).ready( function() {
   var score = "<%=score%>";
   score = parseFloat(score);
   var count = 0;
   for(i =0; i < Math.round(score); i++) {
     $('.starRev span').parent().children('span').removeClass('on');
     $('.starRev span').addClass('on').prevAll('span').addClass('on');
   }
   return false;
});

我不知道parseFloat是什么,我想是你自己写的。我能看到的是分数,至少在你展示的代码中,是一个字符串而不是数字。否则,您的代码是正确的

然而,你的选择器并不好。您呼叫的是“.starRev span”的家长,即.starRev。然后再次选择span子级,所有这些都可以是:$'.starRev span'.removeClass'on'


但是您一次又一次地重复相同的代码,并且正在做相同的事情,删除和添加on类。你应该检查你的代码块,我不认为它做你想要的。for块很好。

您需要从id/class获取分数。这是一根绳子。是从jsp接收的变量值。到底什么不起作用?循环不工作?@OrAssayag此代码重复一次。score的值是多少?parseFloat是用数字替换字符串的操作。此代码为星级代码。
 <link href="./CSS/review.css" rel="stylesheet" type="text/css" media="screen"/>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<div class="starRev">
    <span class="starR1"></span>
    <span class="starR2"></span>
    <span class="starR1"></span>
    <span class="starR2"></span>
    <span class="starR1"></span>
    <span class="starR2"></span>
    <span class="starR1"></span>
    <span class="starR2"></span>
    <span class="starR1"></span>
    <span class="starR2"></span>
</div>
 @charset "UTF-8";
 .starR1{
 background: url('http://miuu227.godohosting.com/images/icon/ico_review.png') no-repeat -52px 0;
 background-size: auto 100%;
 width: 15px;
 height: 30px;
 float:left;
 text-indent: -9999px;
 cursor: pointer;
}
.starR2{
background: url('http://miuu227.godohosting.com/images/icon/ico_review.png') no-repeat right 0;
background-size: auto 100%;
width: 15px;
height: 30px;
float:left;
text-indent: -9999px;
cursor: pointer;
}
 .starR1.on{background-position:0 0;}
 .starR2.on{background-position:-15px 0;}