jQuery .each循环,简单的数学不给出单独的结果

时间:2017-08-09 23:34:08

标签: jquery css math each

我正在尝试遍历每个.student-item div,从每个.student-item内的各种数字计算一堆不同的值(数字不需要更改),并输出新的文本和/或使用这些值添加/修改css样式。

问题

  1. 虽然.each似乎正在工作 - 我在循环的每个主要部分之后立即将消息记录到控制台,我看到每个的10个,这是正确的项目数 - 请参阅#2以下。#/ li>
  2. 数学不起作用(因此.else循环?)。我还记录了一个变量scoreChangeNum,其中包含一些简单数学,只有在满足一个.hasClass条件时才会显示(这应该适用于{{ 1}}在这种情况下)。您还会看到.student-items文字。此文本正在+-8 ytd变量中计算并附加在范围内。计算错误(每个数字应该从~10到~300)并且它是为每个scoreChangeNum编写的(它们应该都是不同的)。
  3. 我添加到某些元素的CSS并没有将它们移动到原位。我猜是因为数学似乎已经关闭了......?位置(和一些元素的宽度)应由不同元素内的数字决定。
  4. 这有意义吗?对不起来了。会喜欢这里出了什么问题的一些提示。如果有什么不清楚,请告诉我。谢谢!

    编辑 (在此处添加代码。):

    HTML (但.student-item总共有10个

    .student-item

    的jQuery

    <div class="students-list">
      <div class="student-item">
        <a href="#" class="name">Jim Wise</a>
        <div class="score-bar">
          <div class="scores">
            <div class="current-score point">180</div>
            <div class="orig-score-arrow"></div>
            <div class="orig-score">80</div>
            <div class="score-change">+<span class="score-change-amount">nnn</span> ytd</div>
          </div>
          <ul id="markings">
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
          </ul>
        </div>
        <div class="print-icon"></div>
      </div>
      <div class="student-item">
        <a href="#" class="name">Frank Owens</a>
        <div class="score-bar">
          <div class="scores">
            <div class="current-score point">280</div>
            <div class="orig-score-arrow"></div>
            <div class="orig-score">100</div>
            <div class="score-change">+<span class="score-change-amount">nnn</span> ytd</div>
          </div>
          <ul id="markings">
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
            <li>&nbsp;</li>
          </ul>
        </div>
        <div class="print-icon"></div>
      </div>
    </div>
    

1 个答案:

答案 0 :(得分:0)

问题是$(origScoreElement)正在选择页面上的所有div.orig-score元素,而.text()正在返回第一个文本。您需要使用$(origScoreElement, this)仅选择当前div.student-item的子项div.orig-score。