<html>
<head>
<script type="text/javascript">
var idcount = 0;

function insert(){
alert("oo");
var obj = getElementById("input0");
alert("xx");
var newNode = createNewNode("hhhhhhhh");
obj.parentNode.insertBefore(newNode, obj);
}

function createNewNode( text ){
var newNode = document.createElement( "p" );
var nodeId = "new" + idcount;
++idcount;
newNode.id = nodeId;
text = "[" + nodeId + "] " + text;
newNode.appendChild(document.createTextNode( text ) );
return newNode;
}
</script>
</head>
<body>
<input id="input0"  type="text"   value="xxxxx" />
<input id="button0" type="button" value="insert" onclick="insert()" />
</body>
</html>

解决方案 »

  1.   

    <html>
        <head>
            <script type="text/javascript">
                var idcount = 0;
                
                function insert(){
                    alert("oo");
                    var obj = document.getElementById("input0");
                    alert("xx");
                    var newNode = createNewNode("hhhhhhhh");
                    obj.parentNode.insertBefore(newNode, obj);
                }
                
                function createNewNode( text ){
                    var newNode = document.createElement( "p" );
                    var nodeId = "new" + idcount;
                    ++idcount;
                    newNode.id = nodeId;
                    text = "[" + nodeId + "] " + text;
                    newNode.appendChild(document.createTextNode( text ) );
                    return newNode;
                }
            </script>
        </head>
        <body>
            <input id="input0"  type="text"   value="xxxxx" />
            <input id="button0" type="button" value="insert" onclick="insert()" />
        </body>
    </html>
      

  2.   

    使用函数的时候,window对象可以省略
    如 window.alert("x")可以写为 alert("x"),因为window代码浏览器窗口, 而函数执行的默认对象就是window
    但document.getElemenyById("x")的document就不能省略了