Jquery 使用数据-*属性从多个选择中更新总价
因此,我试图制作一个简单的脚本,可以从多个选择中更新总价。使用data-*属性在每个选项中设置价格 如果我将价格放在value属性中,但不知何故没有使用data price属性来设置价格,我会设法使它工作 任何帮助都将不胜感激 这是HTML:Jquery 使用数据-*属性从多个选择中更新总价,jquery,html,Jquery,Html,因此,我试图制作一个简单的脚本,可以从多个选择中更新总价。使用data-*属性在每个选项中设置价格 如果我将价格放在value属性中,但不知何故没有使用data price属性来设置价格,我会设法使它工作 任何帮助都将不胜感激 这是HTML: <div class="container"> <div class="row"> <div class="col-md-6">Initial Price: <span id="thisIsOriginal
<div class="container">
<div class="row">
<div class="col-md-6">Initial Price: <span id="thisIsOriginal" class="">$62.00</span></div>
<div class="col-md-6">Total: <span id="total">$62.00</span></div>
</div>
<div class="row">
<select class="optionPrice" name="select-1">
<option value="">Please Select</option>
<option data-price="" value="1">option a</option>
<option data-price="20.00" value="2">option b (+$20.00)</option>
</select>
<select class="optionPrice" name="select-2">
<option value="0">Please Select</option>
<option data-price="5.00" value="3">option c</option>
<option data-price="10.00" value="4">option d (+$10.00)</option>
</select>
<select class="optionPrice" name="select-3">
<option value="">Please Select</option>
<option data-price="" value="5">option e</option>
<option data-price="15.00" value="6">option f (+$15.00)</option>
</select>
</div>
</div>
演示我正在调试这段代码,它看起来像是在每一个选择发生更改后,您都在对其进行迭代,从而生成未定义的值 我提供的版本没有不必要的。每个。我还做了一些小的清理工作
$(document).ready(function() {
var originalPriceText = $('#thisIsOriginal').text();
var originalCurrency = originalPriceText.substring(0, 1);
var originalPrice = originalPriceText.substring(1);
var total = 0;
$('.optionPrice').change(function(e) {
dataPrice = $(this).find('option:selected').attr('data-price');
if(dataPrice != undefined && dataPrice.length != 0) {
total += parseFloat(originalPrice) + parseFloat(dataPrice);
}
$('#total').text('Total: $' + total.toFixed(2));
});
});
我正在调试这段代码,它看起来像是在每个select上进行迭代,在其中一个select发生更改后,会生成未定义的值 我提供的版本没有不必要的。每个。我还做了一些小的清理工作
$(document).ready(function() {
var originalPriceText = $('#thisIsOriginal').text();
var originalCurrency = originalPriceText.substring(0, 1);
var originalPrice = originalPriceText.substring(1);
var total = 0;
$('.optionPrice').change(function(e) {
dataPrice = $(this).find('option:selected').attr('data-price');
if(dataPrice != undefined && dataPrice.length != 0) {
total += parseFloat(originalPrice) + parseFloat(dataPrice);
}
$('#total').text('Total: $' + total.toFixed(2));
});
});
$(文档).ready(函数(){
$('.optionPrice')。更改(函数(){
var OriginalPrice=$('#thisisisopricinal').text().replace('初始价格:','');
var OriginalCurrency=原始价格子串(0,1);
原始价格=原始价格。子串(1);
var合计=0;
$('.optionPrice')。每个(函数(){
if($(this).find('option:selected').attr('data-price')!=0&&$(this.find('option:selected').attr('data-price')!=未定义){
log($('option:selected',this.attr(“数据价格”);
total+=parseFloat($('option:selected',this).attr('data-price');
}
});
var newTotal=parseFloat(原始价格)+parseFloat(总计);
$(“#总计”).text(“$”+newTotal.toFixed(2));
});
});
$(文档).ready(函数(){
$('.optionPrice')。更改(函数(){
var OriginalPrice=$('#thisisisopricinal').text().replace('初始价格:','');
var OriginalCurrency=原始价格子串(0,1);
原始价格=原始价格。子串(1);
var合计=0;
$('.optionPrice')。每个(函数(){
if($(this).find('option:selected').attr('data-price')!=0&&$(this.find('option:selected').attr('data-price')!=未定义){
log($('option:selected',this.attr(“数据价格”);
total+=parseFloat($('option:selected',this).attr('data-price');
}
});
var newTotal=parseFloat(原始价格)+parseFloat(总计);
$(“#总计”).text(“$”+newTotal.toFixed(2));
});
});
主要问题是
原始价格
,每个块中也有一些问题
$(document).ready(function() {
$('.optionPrice').change(function() {
var OriginalPrice = $('#thisIsOriginal').text();
var OriginalCurrency = OriginalPrice.substring(0, 1);
OriginalPrice = OriginalPrice.split(' ')[2].substring(1);
var total = 0;
$('.optionPrice').each(function() {
var $el = $(this).find('option:selected');
if($(this).val() != 0 && typeof $el.attr('data-price') != 'undefined') {
total += parseFloat($el.attr('data-price'));
}
});
var newTotal = parseFloat(OriginalPrice) + parseFloat(total);
$('#total').text('$' + newTotal.toFixed(2));
});
});
主要问题是原始价格
,每个块中也存在一些问题
$(document).ready(function() {
$('.optionPrice').change(function() {
var OriginalPrice = $('#thisIsOriginal').text();
var OriginalCurrency = OriginalPrice.substring(0, 1);
OriginalPrice = OriginalPrice.split(' ')[2].substring(1);
var total = 0;
$('.optionPrice').each(function() {
var $el = $(this).find('option:selected');
if($(this).val() != 0 && typeof $el.attr('data-price') != 'undefined') {
total += parseFloat($el.attr('data-price'));
}
});
var newTotal = parseFloat(OriginalPrice) + parseFloat(total);
$('#total').text('$' + newTotal.toFixed(2));
});
});