动态创建文本框

时间:2011-05-18 11:56:50

标签: dom

当我动态创建文本框时,我可以添加任何否 文本框的时候我只删除了最后一个文本框后被删除了 抛出异常。

<html>
  <head>My page </html>
     <body>
         <div id="firstdiv">   
         <input type="text" id="text" id="text1" value=""/>
         <input type="button" id="butt" name="it's okay" value="+" onclick="text_add()"/>
         <input type="button" id="butt1" name="it's okay" value="-" nclick="text_remove()"/>
         </div>
     </body>
<script type="text/javascript">
var i=0;
function text_add()
{
   ++i;
  var bal=document.createElement("input")
      bal.setAttribute("type","text");
      bal.setAttribute("id","text"+i);
      bal.setAttribute("name","bala");
      firstdiv.appendChild(bal);

}
function text_remove()
{
try{
  var a="\"";
  a+="text"+(i);
  a+="\"";
    alert(a);
  var bal=document.getElementById(a);
  firstdiv.removeChild(bal);
   --i;
}catch(e)
  {
   alert("Echo"+e);
   }
}
</script>
</html>

chorme throws error:删除一个文本框之后 EchoError:NOT_FOUND_ERR:DOM异常8

1 个答案:

答案 0 :(得分:1)

所以你想添加和删除文本框。 并删除了最新添加的文本框?

所以首先,你在alomdy中有一个文本框,巫婆会与你的 命名

<input type="text" id="text" id="text1" value=""/>

这是一个手动添加qoutes的方法吗?因为这不是身份证的一部分 元素

var a="\"";
a+="text"+(i);
a+="\"";

只要给它命名为normaly

var bal = document.getElementById("text" + i);

你不必乱用你可以储存的dom id dom元素作为普通对象 像这样的东西工作正常

 var textElements = [];
 var firstdiv = document.getElementById("firstdiv");
 function text_add() {
   var bal = document.createElement("input");
   bal.setAttribute("type","text");
   bal.setAttribute("name","bala");
   firstdiv.appendChild(bal);
   textElements.push(bal);
 }
 function text_remove() {
   firstdiv.removeChild(textElements.pop());
 }

pop方法删除数组中最后添加的项