我试图在幻灯片的输入范围内通过每5个值添加总和中的10个单位,一切正常,但是由于某种原因,在5个6个值上又添加了10个,然后一切正常通常。
现在如何工作:0(0),1(0),2(0),3(0),4(0),5(10),6(20),7(20)... 10(20),等等。
它应该如何工作:0(0),1(0),2(0),3(0),4(0),5(10),6(10),7(10)... 10(20),等等。
$(document).ready(function() {
$(".in_objem").on('input', function() {
$(".range-indicator").text($(this).val());
});
$(".in_nagrev").on('input', function() {
$(".nagrev-indicator").text($(this).val());
});
$(".in_objem,.in_nagrev").on('input', function() {
var elem = 0;
var price = 0;
$(".in_objem,.in_nagrev").each(function(){
var b = $(this).val()/5;
var count = 0;
if(b >= 1)
{
for(var i = 0; i < b; i++)
{
elem += 10;
count += 10;
}
console.log(elem);
}
$(this).attr("count_sum", count);
});
var v = 0;
$('.premium-inpts:checked').each(function(){
v = v + parseInt($(this).next('.flexy-block').attr("price"));
});
$("#price-board").text(v + elem);
$("#output-price").val(v + elem);
});
$(".in_objem,.in_nagrev").trigger('input');
$(".premium-inpts").on('click', function(){
var sum = 0;
var n1 = Number($('.in_objem').attr("count_sum"));
var n2 = Number($('.in_nagrev').attr("count_sum"));
sum = n1+n2;
$('.premium-inpts:checked').each(function(){
sum = sum + parseInt($(this).next('.flexy-block').attr("price"));
});
$("#price-board").text(sum);
$("#output-price").val(sum);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<div>
<span class="nagrev-indicator">1</span><span>units1</span>
</div>
<div>
<input class="in_nagrev" name="productivity1" type="range" min="1" max="30" value="1" count_sum="0">
</div>
</div>
<div>
<div>
<span class="range-indicator">1</span><span>units2</span>
</div>
<div>
<input class="in_objem" name="productivity2" type="range" min="1" max="30" value="1" count_sum="0">
</div>
</div>
<div>
<input class="premium-inpts" id="a" type="radio" value="work">
<label class="flexy-block" for="a" price="300">
<span>Work</span>
</label>
<input class="premium-inpts" id="b" type="radio" value="chill">
<label class="flexy-block" for="b" price="20">
<span>Chill</span>
</label>
</div>
<div class="motors-container">
<input class="premium-inpts" id="c" type="radio" value="Automatic">
<label class="flexy-block" for="c" price="90">
<span>Automatic</span>
</label>
<input class="premium-inpts" id="d" type="radio" value="Common">
<label class="flexy-block" for="d" price="0">
<span>Common</span>
</label>
</div>
<div class="price-board">Sum: <span id="price-board"></span></div>
<input id="output-price" name="Sum" type="hidden" value="">
答案 0 :(得分:2)
您的代码如此工作的原因是,您给b赋值var b = $(this).val()/5;
,然后将for设置为0到b。
如果您的值等于b = 6/5
而不是1.2
的{{1}}的6。
因此,在您的1
中,for
首先是i
,它比0
低,然后是1.2
,它仍然比{{ 1}}。如果您想简单地解决问题,请使用1
,它“返回小于或等于给定数字的最大整数” mdn link。
但是我不得不说您的代码很难阅读,因此您可能要考虑在可读性和效率方面进行工作。