我写了一个jquery脚本。它连接而不是添加两个值
$(document).on('click','.woocommerce-checkout-review-order input[type="submit"]', function(){
var sum = '';
$('.checkout_ilm select').each(function(){
if(jQuery(this).val()!=''){
sum += Number(jQuery(this).val()); // Or this.innerHTML, this.innerText
}
});
alert(sum);
});
当所有选择字段中的值为零时,连接值而不是添加。因此,在这种情况下,它会给出 00 而不是 0 。我使用parseInt
和parseFloat
也都有效,但这条件在parseInt
和parseFloat
时返回true,即使sum等于零和{{ 1}}也值零。
ilm_selected
请帮助,提前致谢。
答案 0 :(得分:2)
我只需将Number
替换为parseInt
,尝试此解决方案,这将对您有所帮助。
请参阅此链接以获取更多信息:click here
jQuery(document).on('click','.woocommerce-checkout-review-order input[type="submit"]', function(){
var sum = 0;
jQuery('.checkout_ilm select').each(function(){
if(jQuery(this).val()!=''){
sum += parseInt(jQuery(this).val());
}
});
alert(sum);
});
答案 1 :(得分:1)
试试这个 -
jQuery(document).on('click','.woocommerce-checkout-review-order input[type="submit"]', function(){
var sum = 0;
jQuery('.checkout_ilm select').each(function(){
if(jQuery(this).val()!=''){
sum += parseFloat(jQuery(this).val());
}
});
console.log("Sum: ", sum);
});
你也可以使用parseInt(),但是如果你的值包含十进制,例如20.50,那么它将不起作用,所以最好去parseFloat()。
答案 2 :(得分:1)
您必须使用parseInt()
。 parseInt()
函数解析一个字符串并返回一个整数。
sum += parseInt(jQuery(this).val()); // Or this.innerHTML, this.innerText
答案 3 :(得分:0)
您必须将var sum = '';
更改为var sum = 0;
。
这将帮助您获取所有选择框的总和。
您之前的代码是将您转换为数字的选择框的值连接到字符串,因为sum
已初始化为''
。
工作演示
$(document).on('click','input[type="submit"]', function(){
var sum = 0;
$('select').each(function(){
if($(this).val() !== ''){
sum += Number($(this).val());
}
});
console.log(sum);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="1">Volvo</option>
<option value="20">Saab</option>
<option value="34">Mercedes</option>
<option value="7">Audi</option>
</select>
<select>
<option value="1">Volvo</option>
<option value="20">Saab</option>
<option value="34">Mercedes</option>
<option value="7">Audi</option>
</select>
<select>
<option value="1">Volvo</option>
<option value="20">Saab</option>
<option value="34">Mercedes</option>
<option value="7">Audi</option>
</select>
<input type="submit" value="Submit">