当用户选中/取消选中复选框时,如何使用Javascript进行加减价格?
我有一个清单的复选框与不同的价格为所有项目。如果用户选择了多个项目,我如何实现功能?如果取消选择,我如何将价格添加到总计或删除?在javascript中 我是javascript新手,所以如果我的代码不对,请原谅当用户选中/取消选中复选框时,如何使用Javascript进行加减价格?,javascript,Javascript,我有一个清单的复选框与不同的价格为所有项目。如果用户选择了多个项目,我如何实现功能?如果取消选择,我如何将价格添加到总计或删除?在javascript中 我是javascript新手,所以如果我的代码不对,请原谅 let pricesList=new Array(); 价格清单[“全部”]=200; 价格列表[“js框架”]=100; 价格清单[“js libs”]=100; 价格清单[“快递”]=100; 价格列表[“节点”]=100; 价格清单[“构建工具”]=100; 价格清单[“npm
let pricesList=new Array();
价格清单[“全部”]=200;
价格列表[“js框架”]=100;
价格清单[“js libs”]=100;
价格清单[“快递”]=100;
价格列表[“节点”]=100;
价格清单[“构建工具”]=100;
价格清单[“npm”]=100;
const activitycheckbox=document.queryselectoral(“输入[type=checkbox]”);
函数getActivityPrices(用户输入){
//选中所有复选框
//循环通过复选框列表
for(设i=0;i
登记参加活动
主要会议-200美元
JavaScript框架研讨会-周二上午9点至下午12点,100美元
JavaScript库研讨会-周二下午1点到4点,100美元
快速工作坊-星期二上午9点至下午12点,100美元
Node.js研讨会-周二下午1点至4点,100美元
建造工具研讨会-星期三上午9点至下午12点,100美元
npm研讨会-周三下午1点至4点,100美元
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div id="printIt"></div>
<input type="checkbox" value="200" onchange="calculateTotal()"> All
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> js-frameworks
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> js-libs
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> express
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> node
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> build-tools
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> npm
<br>
</body>
</html>
<h1>Purchase</h1>
<p>Select Item(s):</p>
<ul id='available-items'></ul>
<h2>Ledger</h2>
<ul id='ledger'></ul>
<table>
<tr>
<th>Total:</th>
<td><input disabled id='total' value='0.00'/></td>
</tr>
</table>
JS-Bin
全部的
js框架
js libs
表达
节点
构建工具
npm
JAVASCRIPT
var pricesList = [];
pricesList["all"] = 200;
pricesList["js-frameworks"] = 100;
pricesList["js-libs"] = 100;
pricesList["express"] = 100;
pricesList["node"] = 100;
pricesList["build-tools"] = 100;
pricesList["npm"] = 100;
var activityCheckBoxes = document.getElementsByTagName("input");
function getActivityPrices() {
var price = parseInt(0);
for (var i = 0; i < activityCheckBoxes.length; i++) {
if (activityCheckBoxes[i].checked) {
price += parseInt(activityCheckBoxes[i].value);
}
}
return price;
}
function calculateTotal() {
var total = getActivityPrices();
var printIt = document.getElementById("printIt");
console.log(total);
printIt.innerHTML = 'Your Total is $' + total;
}
var pricesList=[];
价格清单[“全部”]=200;
价格列表[“js框架”]=100;
价格清单[“js libs”]=100;
价格清单[“快递”]=100;
价格列表[“节点”]=100;
价格清单[“构建工具”]=100;
价格清单[“npm”]=100;
var activitycheckbox=document.getElementsByTagName(“输入”);
函数getActivityPrices(){
var-price=parseInt(0);
对于(变量i=0;i
下面是一个简单的示例,介绍如何解决此问题。
按运行代码段
对其进行测试
函数计算(){
const inputs=document.querySelectorAll(“输入[type=checkbox]”);
设结果=0;
for(设i=0;i
总计:0
Js框架
JS Libs
您有很多错误-请查看这里的修订版本。您的价格列表应该是一个对象,而不是一个数组
let pricesList={};
价格清单[“全部”]=200;
价格列表[“js框架”]=100;
价格清单[“js libs”]=100;
价格清单[“快递”]=100;
价格列表[“节点”]=100;
价格清单[“构建工具”]=100;
价格清单[“npm”]=100;
const main=document.getElementById('main');
const printIt=document.getElementById('printIt');
对于(价格表中的项目){
设框=“”+
''+项目+'-价格:$'+价格列表[项目]+''
main.innerHTML=main.innerHTML+box;
}
const activitycheckbox=document.queryselectoral(“输入[type=checkbox]”);
函数getActivityPrices(用户输入){
//选中所有复选框
设total=0;
//循环通过复选框列表
for(设i=0;i
正文{
字体大小:1.3rem;
字体系列:arial;
}
#打印{
边缘顶部:15px;
}
动态方法,根据需要进行更改
Javascript
var availableItems = getAvailableItems(),
ledger = getLedger(),
total = getTotal();
getStore().map(function(item) {
var li = document.createElement('li'),
checkbox = document.createElement('input'),
label = document.createElement('label'),
ledgerItem = document.createElement('li'),
_item = item;
ledgerItem.textContent = item.name+' costs $'+item.price;
ledgerItem.classList.add(item.name.replace(/[^a-z\d-_]/gi, ''));
checkbox.type = 'checkbox';
checkbox.addEventListener('change', function() {
if (this.checked) {
ledgerItem.rel = item;
ledger.appendChild(ledgerItem);
} else {
ledger.removeChild(ledgerItem);
}
});
checkbox.addEventListener('change', setTotal);
label.appendChild(checkbox);
label.appendChild(document.createTextNode(' '+item.name));
li.appendChild(label);
availableItems.appendChild(li);
});
function setTotal() {
var total = 0;
Array.from(getLedgerItems()).forEach(item => total += item.rel.price);
getTotal().value = '$'+total.toFixed(2);
}
function getStore() {
return [
{name: 'dog', price: 200.00},
{name: 'cat', price: 100.00},
{name: 'elephant', price: 5000.00},
{name: 'bird', price: 0.99},
{name: 'shark', price: 2500.00},
{name: 'prairie dog', price: 5.00},
];
}
function getAvailableItems() {
return document.getElementById('available-items');
}
function getAvailableItemsList() {
return getAvailableItems().querySelectorAll('li');
}
function getLedger() {
return document.getElementById('ledger');
}
function getLedgerItems() {
return getLedger().querySelectorAll('li');
}
function getTotal() {
return document.getElementById('total');
}
CSS
#total {
width: 80px;
text-align: right;
padding: 3px;
}
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div id="printIt"></div>
<input type="checkbox" value="200" onchange="calculateTotal()"> All
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> js-frameworks
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> js-libs
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> express
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> node
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> build-tools
<br>
<input type="checkbox" value="100" onchange="calculateTotal()"> npm
<br>
</body>
</html>
<h1>Purchase</h1>
<p>Select Item(s):</p>
<ul id='available-items'></ul>
<h2>Ledger</h2>
<ul id='ledger'></ul>
<table>
<tr>
<th>Total:</th>
<td><input disabled id='total' value='0.00'/></td>
</tr>
</table>
购买
选择项目:
分类账簿
总数:
在单击时运行的复选框中添加一个事件监听器。我也尝试过,我试图实现的是实时计算,因此如果用户选择/取消选择总价变化<代码>复选框[1]。addEventListener(“单击”,e=>{DisableBox(复选框[1],复选框[5],复选框[3]);calculateTotal();})代码>这必须是纯javascript吗?你能用HTML和Javascript来实现吗?你能使用JQuery吗?是的,纯javascript实际上是我为获得技术学位证书而建立的一个项目。你能展示一下你的html吗?谢谢你的帮助,我看到你的代码正在做我想要的事情,但是当我试着实现我的总数时,你的总数是$Nan,当你说“尝试实现”时,你是什么意思?你在哪里测试过这个,什么浏览器?代码笔这是查看你的代码笔的链接,我再次看到使用ChromeTry的$values很好,拜托,我也没有在chrome中为我工作