根据 Javascript 中的条件添加到变量值
Adding to variable value on condition in Javascript
我有一个名为 "total" 的变量,我想为其分配一个数字(或价格),然后在选择或选中某些选项时添加到该数字。这是我目前的代码。
这里是设置将添加到的变量的初始值(基本价格)的代码。此代码当前有效。
$('input[name=trimlevel]').change(function(){
var total = 0;
if(document.getElementById('basetrim').checked==true) {
var total = 0;
var basetrim = 3550.00;
total = total + basetrim;
$('#myTotal').html('$' + total);
}else if(document.getElementById('upgrade').checked==true) {
var total = 0;
var upgrade = 2400.00;
total = total + upgrade;
$('#myTotal').html('$' + total);
}else {
$('#myTotal').html('$' + total);
}
});
这是用于 "add to" 变量值的代码示例。这不起作用。
$('input[name=leather]').change(function(){
if(document.getElementById('leather).checked == true) {
var leather = 180.00;
total = total + leather;
$('#myTotal').html('$' + total);
}
});
这里是HTML供参考
<div class="modelsel">
<h2>1. SELECT MODEL</h2> <br>
<label for="basetrim">BASE MODEL</label>
<input id="basetrim" type="radio" name="trimlevel" value="2400.00">
<label for="upgrade">UPGRADED MODEL</label>
<input id="upgrade" type="radio" name="trimlevel" value="3550.00">
</div>
<div class="inside">
<h2>3. BASE MODEL ADD-ONS</h2><br>
<input type="checkbox" value="180.00" id="leather" name="leather" />
<label for="leather">Leather Seat (+ 0.00)</label><br>
</div>
<div id="myTotal"></div>
我对 Javascript 比较陌生,为此苦苦挣扎了几个小时。任何帮助表示赞赏。提前致谢。
解决方案已经在评论中了。功能的上下文不同。您可以在函数之外定义总计,也可以为您的行为使用一个对象。
var someObject = {};
在您的函数中,您可以使用点符号编写。
someObject.total = 10;
$('input[name=trimlevel]').change(function(){
var total = 0;
if($(this).checked==true)) {
total = total + $(this).val();
}
$('#myTotal').html('$' + total);
});
只需要进行一些修改就可以正常工作:
第一个,这里有错别字:
if(document.getElementById('leather).checked == true) {
您错过了一个 ' 所以用它代替:
if(document.getElementById('leather').checked == true) {
其次,从函数中定义 var total
并使其可供所有函数使用。如果您在 ready 函数中有您的方法,您可以在那里定义总计。还要删除函数内部的 total 定义,否则您将不会使用 ready 中定义的那个。
第三,当用户点击复选框时,你总是在增加价值(不知道这是否是你想要的)。在这个fiddle中,我根据复选框的状态增加或减少总金额。
考虑编写一个全面的命名函数,将可能对您的总数有所贡献的所有内容相加:
function calculate() {
var total = 0;
if(document.getElementById('basetrim').checked) {
total = total + 3550.00;
} else if(document.getElementById('upgrade').checked) {
total = total + 2400.00;
}
if(document.getElementById('leather').checked) {
total = total + 180.00;
}
// further additions here
// further additions here
// further additions here
$('#myTotal').html('$' + total);
});
然后在必要时附加该命名函数作为事件处理程序:
$('input[name=trimlevel]').change(calculate);
$('input[name=leather]').change(calculate);
//further attachments of calculate as event handler here
//further attachments of calculate as event handler here
//further attachments of calculate as event handler here
我有一个名为 "total" 的变量,我想为其分配一个数字(或价格),然后在选择或选中某些选项时添加到该数字。这是我目前的代码。
这里是设置将添加到的变量的初始值(基本价格)的代码。此代码当前有效。
$('input[name=trimlevel]').change(function(){
var total = 0;
if(document.getElementById('basetrim').checked==true) {
var total = 0;
var basetrim = 3550.00;
total = total + basetrim;
$('#myTotal').html('$' + total);
}else if(document.getElementById('upgrade').checked==true) {
var total = 0;
var upgrade = 2400.00;
total = total + upgrade;
$('#myTotal').html('$' + total);
}else {
$('#myTotal').html('$' + total);
}
});
这是用于 "add to" 变量值的代码示例。这不起作用。
$('input[name=leather]').change(function(){
if(document.getElementById('leather).checked == true) {
var leather = 180.00;
total = total + leather;
$('#myTotal').html('$' + total);
}
});
这里是HTML供参考
<div class="modelsel">
<h2>1. SELECT MODEL</h2> <br>
<label for="basetrim">BASE MODEL</label>
<input id="basetrim" type="radio" name="trimlevel" value="2400.00">
<label for="upgrade">UPGRADED MODEL</label>
<input id="upgrade" type="radio" name="trimlevel" value="3550.00">
</div>
<div class="inside">
<h2>3. BASE MODEL ADD-ONS</h2><br>
<input type="checkbox" value="180.00" id="leather" name="leather" />
<label for="leather">Leather Seat (+ 0.00)</label><br>
</div>
<div id="myTotal"></div>
我对 Javascript 比较陌生,为此苦苦挣扎了几个小时。任何帮助表示赞赏。提前致谢。
解决方案已经在评论中了。功能的上下文不同。您可以在函数之外定义总计,也可以为您的行为使用一个对象。
var someObject = {};
在您的函数中,您可以使用点符号编写。
someObject.total = 10;
$('input[name=trimlevel]').change(function(){
var total = 0;
if($(this).checked==true)) {
total = total + $(this).val();
}
$('#myTotal').html('$' + total);
});
只需要进行一些修改就可以正常工作:
第一个,这里有错别字:
if(document.getElementById('leather).checked == true) {
您错过了一个 ' 所以用它代替:
if(document.getElementById('leather').checked == true) {
其次,从函数中定义 var total
并使其可供所有函数使用。如果您在 ready 函数中有您的方法,您可以在那里定义总计。还要删除函数内部的 total 定义,否则您将不会使用 ready 中定义的那个。
第三,当用户点击复选框时,你总是在增加价值(不知道这是否是你想要的)。在这个fiddle中,我根据复选框的状态增加或减少总金额。
考虑编写一个全面的命名函数,将可能对您的总数有所贡献的所有内容相加:
function calculate() {
var total = 0;
if(document.getElementById('basetrim').checked) {
total = total + 3550.00;
} else if(document.getElementById('upgrade').checked) {
total = total + 2400.00;
}
if(document.getElementById('leather').checked) {
total = total + 180.00;
}
// further additions here
// further additions here
// further additions here
$('#myTotal').html('$' + total);
});
然后在必要时附加该命名函数作为事件处理程序:
$('input[name=trimlevel]').change(calculate);
$('input[name=leather]').change(calculate);
//further attachments of calculate as event handler here
//further attachments of calculate as event handler here
//further attachments of calculate as event handler here