Javascript 在具有不同值但类名相同的所有div上运行jQuery函数

Javascript 在具有不同值但类名相同的所有div上运行jQuery函数,javascript,jquery,html,css,xslt,Javascript,Jquery,Html,Css,Xslt,我要做的是运行一个jQuery函数,该函数使用分数作为百分比来设置条的宽度,将数字分数转换为条评级系统。divs和divs中的分数是使用XSL从XML动态生成的 问题是函数从第一个DIV中获取分数并将其应用于所有后续DIV,而不是分别从每个DIV获取分数。作为参考,.Product\u Rating\u Score\u total是分数,.ratingBar是我的分数条后面的灰色背景,.ratingOverall是绿色条,其宽度经过调整以反映分数百分比。这是我的评级系统的图像(正如你所看到的,第

我要做的是运行一个jQuery函数,该函数使用分数作为百分比来设置条的宽度,将数字分数转换为条评级系统。
div
s和
div
s中的分数是使用XSL从XML动态生成的

问题是函数从第一个DIV中获取分数并将其应用于所有后续DIV,而不是分别从每个DIV获取分数。作为参考,
.Product\u Rating\u Score\u total
是分数,
.ratingBar
是我的分数条后面的灰色背景,
.ratingOverall
是绿色条,其宽度经过调整以反映分数百分比。这是我的评级系统的图像(正如你所看到的,第一个分区的2.0评级正在转移到其他分区。其他分区的评级应如下7.0 6.0、6.0、6.0-目前这些只是虚拟分数):

以下是我的html代码:

<div id="F26_ResultsDiv" style="display:none">
  <div class="items"><div class="ColOne">
    <div class="item">
      <div class="otherStuff">
        <span>Kindermat Basic Red/Blue</span>
          <div class="overall"><span><span class="content">
           <ul>
            <li class="Product_Rating_Score_Overall">2.00</li>
           </ul>
        </span></span>
      <div class="ratingBar">
    <div class="ratingOverall"> 
</div></div></div></div></div>

非常感谢您的帮助。非常感谢。

您需要本地化您的选择器:

$('.overall').each( function() {
   var score = parseFloat($(this).find('.Product_Rating_Score_Overall').text()).toFixed(1);
   console.log(score);
    var scorePerc = score * 10;
    $(this).find('.ratingOverall').width(scorePerc + '%');
    $(this).find('.Product_Rating_Score_Overall').text(score);
});
更新:使用$(this)()功能添加了小提琴

对于每个元素,您可以在其下找到具有类产品_评级_分数_总体的元素


问题在于第二行和其他引用是全局的,并且没有正确地本地化。您应该将其更改为获取本地值,而不是每次出现在全局范围上的第一个值,这就是您现在获得所看到的功能的原因。现在你认为它不起作用,但它的工作原理和它写的一模一样。通过调整代码以作用于每个
内部的局部变量。总体而言,
我们将得到您想要的正确结果

尝试按如下方式更改该代码:

$('.overall').each( function() {
   var score = parseFloat($(this).find('.Product_Rating_Score_Overall').text()).toFixed(1);
   console.log(score);
    var scorePerc = score * 10;
    $(this).find('.ratingOverall').width(scorePerc + '%');
    $(this).find('.Product_Rating_Score_Overall').text(score);
});

jQuery何时运行?如果它是在页面完全加载/构建之前运行的,那么它可能看不到所有元素。你和Kenneth都是正确的,但你比他快了一分钟。我真的很感激。这一次我把头撞在墙上两个小时。你们都很棒。@Tizo-Mine并不是完全错误的,也不是最快的帖子,也不是缺少全面的例子……你们完全正确。你的也是对的。非常感谢。很抱歉没有提到你。至于谁先发的帖子,我只想看看帖子上的时间回复,埃尔赫尼比你领先了一分钟。
$('.overall').each( function() {
   var score = parseFloat($(this).find('.Product_Rating_Score_Overall').text()).toFixed(1);
   console.log(score);
    var scorePerc = score * 10;
    $(this).find('.ratingOverall').width(scorePerc + '%');
    $(this).find('.Product_Rating_Score_Overall').text(score);
});
$('.overall').each( function() {
   var score = parseFloat($(this).find('.Product_Rating_Score_Overall').text()).toFixed(1);
   console.log(score);
    var scorePerc = score * 10;
    $(this).find('.ratingOverall').width(scorePerc + '%');
    $(this).find('.Product_Rating_Score_Overall').text(score);
});