innerHTML 在事件处理程序函数 (Javascript) 中不起作用
innerHTML not working inside event handler function (Javascript)
我创建了一个函数updatePrice,我已将其与HTML表单中的复选框和单选按钮上的"单击"事件相关联。每个复选框和单选按钮基本上代表一个项目,其价格作为这些<input>
元素的值属性。当我选中或取消选中任何框时,该函数会触发,遍历表单中的所有元素,并将所有选中项目的总价格更新为表单下方的div 元素,带有 id 标签"priceOutput"。
以下代码完美运行,打印出来:此项目的价格为 $(项目价格)。
function updatePrice() {
var price = 0
for (i=0;i<=form.length;i++) {
var element = form[i]
if(element.checked) {
price+=parseInt(element.value)
}
document.getElementById("priceOutput").innerHTML = "The price of this item is $" + price + "."
}
}
但是,如果我切换最后一行,该行根本不打印:
function updatePrice() {
var price = 0
for (i=0;i<=form.length;i++) {
var element = form[i]
if(element.checked) {
price+=parseInt(element.value)
}
}
document.getElementById("priceOutput").innerHTML = "The price of this item is $" + price + "."
}
为什么我必须在 for 的 {} 中写下该行才能工作。价格变量的范围不会扩展到整个 updatePrice 函数吗?
我对编程还比较陌生,所以如果这是一个基本问题,请原谅我。
在我看来,它没有打印,因为您正在导致错误。由于数组索引从 0 开始,因此您的 for 循环不应使用 <=
而是<
:
for (i=0;i<form.length;i++) {
...
}
之所以没有打印任何内容,是因为在最后一个循环中,函数错误并且您设置的内部 HTML 永远不会被执行。
您的代码似乎有错误,如何将var
添加到您的 for 循环并从中删除 = i<=form.length
for ( var
i = 0; i
相关文章:
- 幻灯片滚动javascript不起作用
- 当我在浏览器中打开HTML文件时,javascript不起作用
- 来自MDN的循环示例的JavaScript不起作用
- 在IE中切换javascript不起作用的复选框
- 在SVG中创建带有外来对象的文本区域的Javascript不起作用
- 寻呼<李>javascript不起作用
- 想制作一个基于URL的音频播放器,但Javascript不起作用
- 从Android设备浏览时Javascript不起作用
- 在 Javascript 不起作用的情况下为数字添加逗号
- 获取PHP变量的JavaScript不起作用
- 有些JavaScript不起作用
- 保存HTML文件后,Javascript不起作用
- onClick javascript不起作用
- 在Wicket ModalWindow中使用Panel时,HTML中的Javascript不起作用
- Jquery顶部的两行Javascript不起作用
- 当我通过Node服务器提供HTML时,为什么我的页面Javascript不起作用
- Javascript不起作用,但当放置断点并从chrome调试器工具中单击文件时,它可以正常工作
- 为不同的屏幕分辨率加载css样式的Javascript不起作用
- 在IE9中javascript不起作用,但在打开控制台后它就起作用了
- 为什么Javascript不起作用