首先我要说的是,虽然我有一些编程经验(大学课程中的一些基本C和我曾经在大学为教授写过一个FORTRAN程序),但我对JS完全不熟悉并且开始有点沮丧。
出于某种原因,即使在阅读了教程并在对象上观看了几个YouTube视频之后,我似乎无法绕过它。我理解基础知识并且做非常基本的事情没有问题,比如编写一个在HTML网站上打印出增量的循环,但每次我尝试实际的东西时,我都完全不知所措。
这是我目前的问题:我创建了这个HTML网站,可以生成购物清单。基本上,当我单击项目名称旁边的其中一个按钮时,它会将该项目添加到屏幕中间的列表中。感谢Google,我发现了一段JavaScript代码,通过尝试和错误,我设法为此目的进行了调整:
<!-- click this button to add the item-->
<button onclick="myFunction('ITEM1', 100)" class="sidebarbuttons" >ITEM1 </button>
/* Create a List one line at a time- */
<script>
function myFunction( x, y ) {
var node = document.createElement("LI" );
var textnode = document.createTextNode(x);
node.appendChild(textnode);
document.getElementById("myList").appendChild(node);
}
</script>
到目前为止,这么好。现在我想获得所有商品的净价。这意味着,当我单击按钮时,我想要一个函数将该项的价格添加到变量中,然后在一个字段中显示该变量
document.getElementById("result").innerHTML = total_sum;
这是我的问题:哦,天啊,我该怎么做?我想我可以添加以下内容:
function myfunction(x,y){
var sum = 0;
var sum+=y;
}
document.getElementById("result").innerHTML = 'sum';
显然,这根本不起作用。能不能给我一些提示,告诉我要做些什么呢?
答案 0 :(得分:2)
首先,
请考虑更好地学习JavaScript,因为它是一种简单的编程语言,在不知道语言的情况下复制和粘贴非常危险。阅读很多,看很多并且不知道从哪里开始是很正常的,这是因为人们讨厌JavaScript的主要原因:因为我们不太熟悉JavaScript。因此,请考虑阅读Kyle Simpson撰写的“你不知道”系列丛书。
关于你的问题。您可以添加一个变量来存储项目的总和,当您点击某个项目时,您可以添加它:
var total_sum = 0;
function myFunction( x, y ) {
var node = document.createElement("LI" );
var textnode = document.createTextNode(x);
node.appendChild(textnode);
document.getElementById("myList").appendChild(node);
showResults(y);
}
function showResults(price){
total_sum += parseFloat(price)
document.getElementById("result").innerHTML = total_sum;
}
让我知道;)
答案 1 :(得分:0)
所以你走在正确的轨道上。在最后一个代码块中提取您离开的位置,您将需要更改一些内容。
//declare the variable outside of the function... otherwise it will only be available to you within that function.
var totalSum = 0;
// then within your function you will be able to successfully add to the global totalSum variable
function calculateSum(x){
totalSum += x;
// and lastly... set the innerHTML within the function... which should equal the variable totalSum
document.getElementById("result").innerHTML = totalSum;
}
希望这有帮助。