我正在尝试创建一个定价计算器,该计算器将所有选中的单选按钮放入一个数组中,并在最后将其添加到数组中。但是,我希望其中一个单选按钮将第一个单选按钮的属性与其自身的值相乘。
我试过将一个if语句嵌套在另一个if语句中,但它似乎只是添加了第一个if语句的值,而忽略了第二个。
$(".w-radio").change(function() {
var totalPrice = 0,
values = [];
$("input[type=radio]").each(function() {
if ($(this).is(":checked")) {
if ($(this).is('[name="catering"]')) {
var cateringFunc = (
$(this).val() * $('[name="gastronomy"]').attr("add-value")
).toString();
values.push($(this).val());
}
values.push($(this).val());
totalPrice += parseInt($(this).val());
}
});
$("#priceTotal span").text(totalPrice);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label class="hack43-radio-group w-radio">
<input type="radio" name="gastronomy" value="0" add-value="10">0<BR>
<input type="radio" name="gastronomy" value="550" add-value="10">550<BR>
<input type="radio" name="gastronomy" value="550" add-value="10">550<BR>
<input type="radio" name="gastronomy" value="550" add-value="10">550<BR>
</label>
<br>
<label class="hack43-radio-group w-radio">
<input type="radio" name="venue" value="0">0<BR>
<input type="radio" name="venue" value="10500">10500<BR>
<input type="radio" name="venue" value="10500">10500<BR>
<input type="radio" name="venue" value="10500">10500<BR>
</label>
<br>
<label class="hack43-radio-group w-radio">
<input type="radio" name="catering" value="0">0<BR>
<input type="radio" name="catering" value="40">40<BR>
<input type="radio" name="catering" value="45">45<BR>
<input type="radio" name="catering" value="60">60<BR>
</label>
<div class="hack42-45-added-value-row">
<div id="priceTotal">
<span>0</span>
</div>
</div>
1条答案
按热度按时间s8vozzvw1#
当条件为真时,在推入
values
数组并向totalPrice
添加时,应使用cateringFunc
而不是$(this).val()
。我假设您只想从选中的单选按钮中获得增加的值,所以我将
:checked
添加到选择器中,如果没有选中任何gastronomy
按钮,那么您还需要提供一个默认值。不应该创建
add-value
这样的新属性,如果需要自定义属性,可以使用data-XXX
,这些属性可以通过jQuery.data()
方法访问。