0

ボタンをクリックするだけでテキストボックスを動的に追加および削除しようとしています。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;
}

これはremove()です。の名前を受け入れますdiv

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


問題を解決するのを手伝ってください。ありがとうございました!

4

2 に答える 2

0

onclickを次のように変更する必要があります。

onclick=\"remove('" + divIdName + "');\"

次に、そのように削除関数を呼び出します

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

これが機能しているjsfiddleです:http: //jsfiddle.net/JFzCf/5/

于 2013-02-19T14:58:07.837 に答える
0

あなたのコード構造はこのようになります

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

削除document.getElementById('myDiv');の子は動的に作成されたもの'my'+num+'div'です。調べてください

このdivIdを渡して削除します。ご理解いただければ幸いです。

于 2013-02-19T14:28:05.867 に答える