在Javascript中删除TextBox的问题

时间:2014-05-03 16:35:07

标签: javascript dom

我正在尝试使用Javascript按钮单击创建TextBoxes,然后在另一个按钮单击,我试图删除它们。但是当我尝试删除TextBox时出现问题。按钮单击始终创建文本框,但我尝试删除时不会始终如一地发生。 Plz帮助!!

  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>Untitled Document</title>
   <script>
   var i=0;
    function create_txt()
    {
    var a=document.createElement("div");
    a.setAttribute("id",'d'+i);
    var b=document.createElement("input");
    b.setAttribute("id",'t'+i);
    a.appendChild(b);
    i++;

    var c=document.getElementById("pa1");
    c.appendChild(a);   

    }

  function delete_txt()
    {
    var x=document.getElementById('d'+i);
    var y=document.getElementById('t'+i);
     i--;
    x.removeChild(y);

   }
   </script>
   </head>

   <body>
   <div id="pa1"></div>
   <input type="button" onclick="create_txt()" value="Create" onclick="create_txt()"/>
   <input type="button" onclick="delete_txt()" value="Delete" onclick="delete_txt()" />
   </body>
   </html>

2 个答案:

答案 0 :(得分:1)

您的全局var i很可能是罪魁祸首 - 在创建文本框之后,您会增加i,但是当您调用delete时,您永远不会递减i直到之后。没有匹配的id!在获取要删除的文本框之前尝试递减i

function delete_txt()
{
i--;
var x=document.getElementById('d'+i);
var y=document.getElementById('t'+i);

x.removeChild(y);

}

是的:http://jsfiddle.net/3HH6E/

答案 1 :(得分:0)

你可以通过将DIV和INPUT附加到一个独特的DIV(#myInputs)中来完全删除我吗?删除时,您只需在#myInputs中找到最后一组DIV / INPUT。