web-dev-qa-db-ja.com

テーブル行削除ボタンをクリックした後にテーブル行を削除する

ソリューションはjQueryを使用するか、プレーンJavaScriptにすることができます。

ユーザーがテーブル行セルに含まれる対応するボタンをクリックした後にテーブル行を削除したいので、例えば:

<script>
function SomeDeleteRowFunction() {
 //no clue what to put here?
}
</script>

<table>
   <tr>
       <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction()"></td>
   </tr>
   <tr>
       <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction()"></td>
   </tr>
   <tr>
       <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction()"></td>
   </tr>
</table>
21
like-a-trainee

click属性を使用する代わりにjQuery onclickを使用できます。次を試してください。

$('table').on('click', 'input[type="button"]', function(e){
   $(this).closest('tr').remove()
})

デモ

36
undefined

次のようにできます:

<script>
    function SomeDeleteRowFunction(o) {
     //no clue what to put here?
     var p=o.parentNode.parentNode;
         p.parentNode.removeChild(p);
    }
    </script>

    <table>
       <tr>
           <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this)"></td>
       </tr>
       <tr>
           <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this)"></td>
       </tr>
       <tr>
           <td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this)"></td>
       </tr>
    </table>
27
Siren

次のソリューションは正常に動作しています。

HTML:

<table>
  <tr>
    <td>
      <input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this);">
    </td>
  </tr>
  <tr>
    <td>
      <input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this);">
    </td>
  </tr>
  <tr>
    <td>
      <input type="button" value="Delete Row" onclick="SomeDeleteRowFunction(this);">
    </td>
  </tr>
</table>

JQuery:

function SomeDeleteRowFunction(btndel) {
    if (typeof(btndel) == "object") {
        $(btndel).closest("tr").remove();
    } else {
        return false;
    }
}

http://codebins.com/bin/4ldqpa9 でビンを処理しました

5
gaurang171

純粋なJavascriptを使用:

thisSomeDeleteRowFunction()に渡す必要はありません。

<td><input type="button" value="Delete Row" onclick="SomeDeleteRowFunction()"></td>

Onclick関数:

function SomeDeleteRowFunction() {
      // event.target will be the input element.
      var td = event.target.parentNode; 
      var tr = td.parentNode; // the row to be removed
      tr.parentNode.removeChild(tr);
}
3
A-Sharabiani