我正在尝试学习JavaScript,并希望从底层学习。我正在尝试对收银机进行编码,这是我到目前为止所做的。
var egg = {
pName : "Egg",
price : 21.95,
discount : 20
}
var milk = {
pName : "Milk",
price : 4.95,
discount : 20
}
var juice = {
pName : "Juice",
price : 15.50,
discount : 0
}
var totalCost = 0;
var add = function(){
i = document.querySelector('.addIt').value;
productCost = "";
ProductName = "";
if (i === "egg") {
productCost = egg.price
ProductName = egg.pName
totalCost = totalCost + productCost;
addElement();
} else if (i === "milk") {
productCost = milk.price
ProductName = milk.pName
totalCost = totalCost + productCost;
addElement();
} else if (i === "juice") {
productCost = juice.price
ProductName = juice.pName
totalCost = totalCost + productCost;
addElement();
} else {
alert("Det kan du ikke købe!")
}
function addElement(){
var newDiv = document.createElement("div");
var newContent = document.createTextNode(ProductName + " " + productCost);
newDiv.appendChild(newContent);
var currentDiv = document.querySelector('.items');
currentDiv.appendChild(newDiv);
}
document.querySelector('.kvitt .totalPrice span').innerHTML = totalCost;
}
HTML
<body>
Velkommen til min butik.
Her er hvad du kan købe: egg, milk, juice
<br>
Tast det her ---> <input class="addIt" type="text" ></input>
<button onclick="add();"> Tilføj vare</button>
<br />
<div class="kvitt">Kvitering
<div class="items">her</div>
<div class="totalPrice">Total pris : <span></span></div>
</div>
<script src="script.js"></script>
</body>
我知道这不完美,所以不要判断,我正在努力学习:)
我想要的是减少代码,但我似乎无法让它工作。
我想直接在我的totalCost更新中调用我的对象。
示例:如果i = egg
,那么我应该能够写i.pName
,对吧?或者我错过了什么? :)
更新:我想知道如何从输入中得到答案,并做出类似这样的事情= answer.price:)
答案 0 :(得分:-4)
为什么这样做:
productCost = juice.price
ProductName = juice.pName
totalCost = totalCost + productCost;
如果你想要的是减少一些代码我建议从这里开始:
totalCost = juice.price + productCost;
要解决此问题,您可以从HTML获取名称并执行以下操作:totalCost = name.price