[英]program on Javascript doesn't work correctly
我对该程序的结果有疑问:当我检查“ Protector”,“ Headset”,“ Case”和“ Games”时,应该收到“ Kindle”,“ Nokia”和“ Wii”。 但是,我仅收到一个值-“ Kindle”(在Google Chrome和Internet Explorer中)。 另外,我收到Opera中所有的值(也重复)。 您能帮我解决这些问题吗? 提前致谢。
<html>
<head>
<script type="text/javascript">
function product(){
var checkboxes = document.getElementsByName('checkboxes');
var i=0;
var j=0;
var tech = [
["Kindle","Protector"],
["Iphone","Headset"],
["Iphone","US Charger"],
["Iphone","USB cable"],
["Iphone","Case"],
["Nokia","Protector"],
["Nokia","Headset"],
["Nokia","Case"],
["Wii","Games"]
];
for (i=0 ; i < tech.length; i++){
for(j=0 ; j< checkboxes.length; j++){
if ((tech[i][1] == checkboxes[j].value)&&(checkboxes[j].checked)){
document.write(tech[i][0]);
document.write("<br>");
}
}
}
}
</script>
</head>
<body>
<form name="Accessories">
<input type="checkbox" name="checkboxes" value="Protector"> Protector <br>
<input type="checkbox" name="checkboxes" value="Headset"> Headset <br>
<input type="checkbox" name="checkboxes" value="US Charger"> US Charger <br>
<input type="checkbox" name="checkboxes" value="USB cable"> USB cable <br>
<input type="checkbox" name="checkboxes" value="Case"> Case <br>
<input type="checkbox" name="checkboxes" value="Games"> Games </br>
<input type="button" name="Check" onClick="product()" value="Search a product">
</form>
</body>
</html>
页面呈现后调用document.write()
将完全抹掉页面。 在某些浏览器中,这意味着JavaScript代码本身将停止工作。
您可以尝试的是:
在页面末尾添加一个<div>
(当然,在<body>
内),并为其赋予一个“ id”值“ settings”。
更改代码以设置其内容:
var content = ""; for (i=0 ; i < tech.length; i++){ for(j=0 ; j< checkboxes.length; j++){ if ((tech[i][1] == checkboxes[j].value)&&(checkboxes[j].checked)){ content += tech[i][0] + '<br>'; } } } document.getElementById("settings").innerHTML = content;
当您使用document.write()时,表单元素将不复存在,因此您的checkboxes数组将不存在。 这就是为什么您只获得“亲情”的原因。 尝试改用console.log(tech [i] [0])并在chrome中运行它。 您应该得到:Kindle,Iphone,Iphone,诺基亚,诺基亚,诺基亚,Wii。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.