【发布时间】:2013-05-13 14:18:10
【问题描述】:
我目前在一个小的 javascript 项目中遇到了一些关于 innerHTML 函数的问题。本质上,我有几个 HTML 表单复选框,它们根据是否选中来更改数字(显示在同一页面上)。这个想法很像一个IP地址。结果是一个介于 0 和 255 之间的数字。
但是,我想要做的是,每当用户单击复选框时,我都需要动态更改该数字。想法类似于我们在这个论坛上写问题时使用的概念。在您键入时,下面的文本会动态变化,以准确显示变化时发生的变化。
我的代码运行得不太好。请问你能帮帮我吗?它不断给我消息“未定义”而不是总和。感谢您的帮助。
JavaScript
function displayOctets01(){
var octet01 = new Array(8);
octet01[0] = document.getElementById('octect0101');
octet01[1] = document.getElementById('octect0102');
octet01[2] = document.getElementById('octect0103');
octet01[3] = document.getElementById('octect0104');
octet01[4] = document.getElementById('octect0105');
octet01[5] = document.getElementById('octect0106');
octet01[6] = document.getElementById('octect0107');
octet01[7] = document.getElementById('octect0108');
var firstOctect;
if(octet01[0]==true){
firstOctect+=1;
}
else if(octet01[1]==true){
firstOctect+=2;
}
else if(octet01[2]==true){
firstOctect+=4;
}
else if(octet01[3]==true){
firstOctect+=8;
}
else if(octet01[4]==true){
firstOctect+=16;
}
else if(octet01[5]==true){
firstOctect+=32;
}
else if(octet01[6]==true){
firstOctect+=64;
}
else if(octet01[7]==true){
firstOctect+=128;
}
document.getElementById("octets01").innerHTML = firstOctect;
}
else if(octet01[7]==true){
firstOctect+=128;
}
document.getElementById("octets01").innerHTML = firstOctect;
}
我怀疑我处理变量的方式可能有问题。
【问题讨论】:
-
改用
var firstOctect = 0;开始 -
这解决了未定义的问题,谢谢。但逻辑仍然没有产生我想要的结果。同时,我将进一步调查。感谢您的帮助
-
是的,我没想到它会解决所有问题,我只是注意到您试图增加一个未初始化的数字。尝试将其放入jsfiddle.net,以便我们了解您的使用情况
标签: javascript dynamic innerhtml