繁体   English   中英

Javascript上的程序无法正常工作

[英]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代码本身将停止工作。

您可以尝试的是:

  1. 在页面末尾添加一个<div> (当然,在<body>内),并为其赋予一个“ id”值“ settings”。

  2. 更改代码以设置其内容:

     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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM