for(i=0;i<=count;i++){
str += (Wallet[i].name +" ("+Wallet[i].value+"): "+Wallet[i].count+<br />);
}
document.getElementById("output").write(str);代码如上,我放debuger里面跑了下发现循环跑完后就直接跳出程序,最后一行也不运行了。
为什么啊?有什么地方出错了吗?
谢谢!

解决方案 »

  1.   

    document.getElementById("output").write(str);->>document.getElementById("output").innerHTML = str;
      

  2.   


    <html>
    <head><title>Wallet</title><script type="text/javascript">
    Wallet = new Array();
    count = 0;
    function addCoin(f){
    var i=0;
    var str="";
    Wallet[count] = {name:f.elements["name"].value, value:f.elements["value"].value, count:1};
    count++;
    for(i=0;i<=count;i++){
    str += (Wallet[i].name +" ("+Wallet[i].value+"): "+Wallet[i].count+<br />);
    }
    document.getElementById("output").innerHTML=str;
    window.alert(str);
    }
    </script></head>
    <body>
    <p>Input a coin into wallet!</p>
    <p id="output"></p>
    <form name="input" method="get" action="" onsubmit="return false">
    Coin name: <input type="text" name="name" /><br />
    Coin value: <input type="text" name="value" /><br />
    <input type="button" value="Submit" onclick="addCoin(this.form);"/>
    </form></body>
    </html>好像不是这个问题。程序直接跳过去了,根本没跑那一行代码
      

  3.   

    str += (Wallet[i].name +" ("+Wallet[i].value+"): "+Wallet[i].count+<br />);
    你的浏览器没语法提示?
      

  4.   

    str += (Wallet[i].name +" ("+Wallet[i].value+"): "+Wallet[i].count+'<br />');
    即使上个问题修复了,在我的chrome上还是不能取得f.elements["name"]对象,不知道你在哪看的这种方法,反正我没见过。一步步的运行HTML文件,至少firefox,chrome的Javascript控制台都会有出错提示,你说的debuger也不会不报错的,靠肉眼找问题实在太折磨人了
      

  5.   

    你用什么IDE啊?我刚刚安装了个netbean试试..
      

  6.   

    for(i=0;i<=count;i++){
    str += (Wallet[i].name +" ("+Wallet[i].value+"): "+Wallet[i].count+'<br />');
    }
    document.getElementById("output").innerHTML(str);
      

  7.   

    1.需要确认document.getElementById("output")有没有获取到html元素,可以用
    alert(document.getElementById("output"))验证;如果没有获取到,可能是代码执行时html对象还没有加载,你把代码放到body的onload事件里面试试;
    2.按照7楼的回答,用innerHTML来输出字符串