【发布时间】:2017-01-28 14:33:28
【问题描述】:
我有这个 php 网页,它抓取一个包含排名、名称和数量的有序列表。我无法更改此列表如何获取我。然而,我想用 jQuery 做的是将排名更改为合适的百分比 ((d-value-div/sum-all-values)*100)。
如果您运行下面的代码片段,您可以看到我能够计算所有值的总和。您还可以看到,我能够将排名更改为正确的百分比,但只能更改为第一行的百分比。我希望看到的是其他排名中的正确百分比。
当前:
55.12% 姓名1 $70
55.12% 姓名2 $35
55.12% 姓名3 $20
55.12% 姓名4 $2
目标:
55.12% 姓名1 $70
27.56% 姓名2 $35
15.75% 姓名3 $20
1.57% 姓名4 $2
如何做到这一点?
var sum = 0.0;
$(document).ready(function() {
$('.row #d-value').each(function() {
sum += parseFloat($(this).text().replace('$', ''));
});
$('.row #d-rank').each(function() {
entry = parseFloat($('.row #d-value').text().replace('$', ''));
$(this).text((((entry / sum) * 100)).toFixed(2) + '%');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<span class="cell" id="d-rank">1</span>
<span class="cell" id="d-name">name1</span>
<span class="cell" id="d-value">$70</span>
</div>
<div class="row">
<span class="cell" id="d-rank">2</span>
<span class="cell" id="d-name">name2</span>
<span class="cell" id="d-value">$35</span>
</div>
<div class="row">
<span class="cell" id="d-rank">3</span>
<span class="cell" id="d-name">name3</span>
<span class="cell" id="d-value">$20</span>
</div>
<div class="row">
<span class="cell" id="d-rank">4</span>
<span class="cell" id="d-name">name4</span>
<span class="cell" id="d-value">$2</span>
</div>
提前致谢, 火种盒
【问题讨论】:
-
在我的手机上,所以无法测试,但尝试在入口变量前添加 var。现在的样子,它是一个全局变量,你想要一个局部变量。
-
您有四个具有相同 id 的元素,id="d-value"。
-
另外,#d-value 不能多次使用。它是一个标识。改用一个类。
标签: jquery