Javascript 单击按钮删除文本框

Javascript 单击按钮删除文本框,javascript,html,forms,function,Javascript,Html,Forms,Function,我试图通过点击按钮来动态添加和删除文本框。add()有效,而remove()无效 $ctra = 1; function add() { var ni = document.getElementById('myDiv'); var numi = document.getElementById('theValue'); var num = (document.getElementById('theValue').value -1)+ 2; numi.value =

我试图通过点击按钮来动态添加和删除文本框。
add()
有效,而
remove()无效

$ctra = 1;
function add() { 
    var ni = document.getElementById('myDiv');
    var numi = document.getElementById('theValue');
    var num = (document.getElementById('theValue').value -1)+ 2;
    numi.value = num;
    var newdiv = document.createElement('div');
    var divIdName = 'my'+num+'Div';
    newdiv.setAttribute('id',divIdName);
    newdiv.innerHTML = "<table><tr><td width=159> Name</td>"+
            "<td> <input type='text' name='name' size=20> </td>"+
            "<td> Address </td>"+
            "<td> <input type='text' name='address' size=20> </td>"+
            "<td> Tel. No </td>"+
            "<td> <input type='text' name='telno' size=20><td> <button type='button' onclick='remove(divIdName);'>Remove</button></table>";

    if($ctra<5){
        ni.appendChild(newdiv);
        $ctra++;
    }
    $total = $ctra;
}


请帮我解决这个问题。谢谢大家!

您的代码结构如下所示

<div id='mydiv'>
  <div id='my'+num+'div'>
    //You had written table code here
  </div>
</div>

//您已经在这里编写了表代码
用于删除
document.getElementById('myDiv')
的子对象是您动态创建的
'my'+num+'div'
。请调查一下


传递此divId以删除..希望您理解

您需要将onclick更改为以下内容:

onclick=\"remove('" + divIdName + "');\"
然后像这样调用remove函数

function remove(dId) {
  var ni = document.getElementById('myDiv');
  ni.removeChild(document.getElementById(dId));
  return false;
}

这里有一个jsfiddle正在工作:

我认为您需要做类似于
ni.removeChild(document.getElementById(dId))并在dId中传递id。。不是你说的名字。你在使用jQuery吗?我已经做了@Pete和@gaurav的建议,因此
ni.removeChild(document.getElementById(did))
删除(divIdName)但我想知道为什么它还不起作用。:)我没有使用jQuery,@MoosemanMy代码只有
。我已通过
divIdName
更改了
remove()
的参数(不再使用
'my'+num+'div'
)<代码>'my'+num+'div'
仅在有新添加的文本框时发生。:)哦非常感谢。我不容易想到这一点。但是,它只是删除按钮,而不是整行你确定吗?如果您查看上面链接中的JSFIDLE,它将删除整个行是的,我是。它不是删除整行,只是删除按钮:Ohmm,我不知道为什么它不起作用,因为我只是使用了你在上面粘贴的代码和上面答案中的更改,它对我很好,可能是浏览器问题吗?你在用什么浏览器?你说得对,先生!:)起初我使用的是Chrome,但在你发表评论后,我尝试了IE,现在它可以工作了!有没有办法用Chrome解决这个问题?
function remove(dId) {
  var ni = document.getElementById('myDiv');
  ni.removeChild(document.getElementById(dId));
  return false;
}