function BtnListener(){
var index=0;
var str="";
this.content=new Array();
this.="";
var element=document.getElementById("input-content");  //为什么在这里获取元素,不能在底下用;

this.inputNum=function(num){

content[index++]=num;
str=str+content[index-1]+", ";
element.value=str;            //这里的element可能为null;为什么?
}
}

解决方案 »

  1.   

    最好代码贴全了。element 没取到 应该是文档没加载完,你获取不到。
      

  2.   

    可以用chrome调试一下看看,现在很多不明确的地方,比如如果BtnListener是处于文档最顶层,那么这里的this是指window对象的。<!doctype html>
    <html>
    <head>
    <meta charset="utf-8" />
    </head>
    <body>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <input type="text" id="input-content" />
    <script type="text/javascript">
    (function BtnListener(){
    var index=0;
    var str="";
    this.content=new Array();
    this.="";
    var element = document.getElementById("input-content"); this.inputNum = function(num){
    content[index++] = num;
    str = str + content[index-1] + ", ";
    element.value=str;
    };
    this.inputNum(5);
    })();
    </script>
    </body>
    </html>
      

  3.   

    你想做的是的把str获取到的值赋给input type=‘text’ id='input-content' 
    var element=document.getElementById("input-content").value;
    element = str;
    你可以判断str是否为空,若为空给一个默认的,飞空则给值