Jaki jest najlepszy sposób na usunięcie wiersza tabeli za pomocą jQuery?

Jaka jest najlepsza metoda usuwania wiersza tabeli za pomocą jQuery?

Author: Darryl Hein, 2008-10-05

17 answers

Masz rację:

$('#myTableRow').remove();

To działa dobrze, jeśli twój wiersz ma id, takie jak:

<tr id="myTableRow"><td>blah</td></tr>

Jeśli nie masz id, możesz użyć dowolnego z jQuery mnóstwa selektorów .

 365
Author: imjoevasquez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-16 00:17:54

@Eikern

Jeśli chcesz używać jQuery, użyj jQuery man!

$('#myTable tr').click(function(){
    $(this).remove();
    return false;
});
 89
Author: nickf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-23 09:53:13

Zakładając, że masz przycisk / link w komórce danych w tabeli, coś takiego załatwiłoby sprawę...

$(".delete").live('click', function(event) {
    $(this).parent().parent().remove();
});

Spowoduje usunięcie rodzica rodzica klikniętego przycisku / łącza. Musisz użyć parent (), ponieważ jest to obiekt jQuery, a nie zwykły obiekt DOM, i musisz użyć parent() dwa razy, ponieważ przycisk mieszka wewnątrz komórki danych, która mieszka w wierszu....co chcesz usunąć. $(to) jest przycisk kliknięty, więc po prostu mając coś tak jak to usunie tylko przycisk:

$(this).remove();

Podczas gdy spowoduje to usunięcie komórki danych:

    $(this).parent().remove();

Jeśli chcesz po prostu kliknąć gdziekolwiek w wierszu, aby go usunąć, coś takiego zadziała. Możesz łatwo zmodyfikować to, aby monitować użytkownika lub pracować tylko przy podwójnym kliknięciu:

$(".delete").live('click', function(event) {
    $(this).parent().remove();
});
Mam nadzieję, że to pomoże...Sam trochę się z tym zmagałem.
 54
Author: sluther,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-29 05:05:48

Możesz użyć:

$($(this).closest("tr"))

Do znajdowania nadrzędnego wiersza tabeli elementu.

Jest bardziej elegancki niż parent ().rodzic (), czyli to, co zacząłem robić i wkrótce nauczyłem się błędów moich sposobów.

--edytuj -- Ktoś zwrócił uwagę, że pytanie dotyczyło usunięcia wiersza...

$($(this).closest("tr")).remove()

Jak zaznaczono poniżej, możesz po prostu zrobić:

$(this).closest('tr').remove();

Podobny urywek kodu może być używany do wielu operacji, takich jak wywołanie zdarzeń na wielu elementach.

 38
Author: Ian Lewis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-04 15:49:46

Spokojnie.. Try this

$("table td img.delete").click(function () {
    $(this).parent().parent().parent().fadeTo(400, 0, function () { 
        $(this).remove();
    });
    return false;
});
 15
Author: Thurein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-11 05:58:37

Wszystko, co musisz zrobić, to usunąć znacznik table row (<tr>) z tabeli. Na przykład tutaj jest kod do usunięcia ostatniego wiersza z tabeli:

$('#myTable tr:last').remove();

*powyższy kod został zaczerpnięty z this jQuery Howto post.

 8
Author: Uzbekjon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-02 10:02:49
function removeRow(row) {
    $(row).remove();
}

<tr onmousedown="removeRow(this)"><td>Foo</td></tr>
Może coś takiego też by zadziałało? Nie próbowałem zrobić czegoś z "tym", więc nie wiem, czy to działa, czy nie.
 7
Author: Eikern,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-04 21:48:55

Spróbuj tego rozmiaru

$(this).parents('tr').first().remove();

Pełna lista:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
  <script type="text/javascript">
    $(document).ready(function() {
        $('.deleteRowButton').click(DeleteRow);
      });

    function DeleteRow()
    {
      $(this).parents('tr').first().remove();
    }
  </script>
</head>
<body>
  <table>
    <tr><td>foo</td>
     <td><a class="deleteRowButton">delete row</a></td></tr>
    <tr><td>bar bar</td>
     <td><a class="deleteRowButton">delete row</a></td></tr>
    <tr><td>bazmati</td>
     <td><a class="deleteRowButton">delete row</a></td></tr>
  </table>
</body>
</html>

Zobacz to w akcji

 7
Author: Tim Abell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-25 11:14:39

Jest następujące dopuszczalne:

$('#myTableRow').remove();
 6
Author: Darryl Hein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-04 21:04:56

Kolejny przez empty():

$(this).closest('tr').empty();
 4
Author: Pichet Thantipiputpinyo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-18 09:35:38

Jeśli wiersz, który chcesz usunąć, może się zmienić, możesz go użyć. Wystarczy przekazać tę funkcję wiersz #, który chcesz usunąć.

function removeMyRow(docRowCount){
   $('table tr').eq(docRowCount).remove();
}
 2
Author: silvster27,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-11 20:46:04
$('tr').click(function()
 {
  $(this).remove();
 });

Myślę, że wypróbujesz powyższy kod, ponieważ działa, ale nie wiem, dlaczego działa przez jakiś czas, a potem cała tabela jest usuwana. próbuję również usunąć wiersz, klikając wiersz. ale nie mógł znaleźć dokładnej odpowiedzi.

 1
Author: 2 revs, 2 users 67%Asim Sajjad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-05 02:29:44

Jeśli masz taki HTML

<tr>
 <td><span class="spanUser" userid="123"></span></td>
 <td><span class="spanUser" userid="123"></span></td>
</tr>

Gdzie {[2] } jest niestandardowym atrybutem, który można dynamicznie wypełniać podczas budowania tabeli,

Możesz użyć czegoś takiego jak

  $(".spanUser").live("click", function () {

        var span = $(this);   
        var userid = $(this).attr('userid');

        var currentURL = window.location.protocol + '//' + window.location.host;
        var url = currentURL + "/Account/DeleteUser/" + userid;

        $.post(url, function (data) {
          if (data) {
                   var tdTAG = span.parent(); // GET PARENT OF SPAN TAG
                   var trTAG = tdTAG.parent(); // GET PARENT OF TD TAG
                   trTAG.remove(); // DELETE TR TAG == DELETE AN ENTIRE TABLE ROW 
             } else {
                alert('Sorry, there is some error.');
            }
        }); 

     });

Więc w takim przypadku nie znasz klasy ani identyfikatora tagu TR, ale i tak możesz go usunąć.

 1
Author: Academy of Programmer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-06 12:44:45

Doceniam to jest stary post, ale chciałem zrobić to samo, i okazało się, że zaakceptowana odpowiedź nie działa dla mnie. Zakładając, że JQuery ruszyło do przodu, odkąd to zostało napisane.

W każdym razie, znalazłem następujące działa dla mnie:

$('#resultstbl tr[id=nameoftr]').remove();
Nie wiem, czy to komuś pomoże. Mój przykład powyżej był częścią większej funkcji, więc nie zawijał jej w słuchacz zdarzeń.
 1
Author: SparkyUK2104,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-19 12:55:30

Użyłem tego w kodzie:

>  $("#tbl").on("click", ".delete-row", function () {
>                 $(this).closest('tr').remove();
>             });
 1
Author: Vipin G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-06 08:01:28

Id nie jest teraz dobrym selektorem. Możesz zdefiniować niektóre właściwości w wierszach. I możesz użyć ich jako selektora.

<tr category="petshop" type="fish"><td>little fish</td></tr>
<tr category="petshop" type="dog"><td>little dog</td></tr>
<tr category="toys" type="lego"><td>lego starwars</td></tr>

I możesz użyć func, aby wybrać wiersz w ten sposób (ES6):

const rowRemover = (category,type)=>{
   $('tr[category=${category}][type=${type}]').remove();
}

rowRemover('petshot','fish');
 0
Author: Kamuran Sönecek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-06 08:12:40

Jeśli używasz tabel Bootstrap

Dodaj ten fragment kodu do bootstrap_table.js

BootstrapTable.prototype.removeRow = function (params) {
    if (!params.hasOwnProperty('index')) {
        return;
    }

    var len = this.options.data.length;

    if ((params.index > len) || (params.index < 0)){
        return;
    }

    this.options.data.splice(params.index, 1);

    if (len === this.options.data.length) {
        return;
    }

    this.initSearch();
    this.initPagination();
    this.initBody(true);
};

Następnie w Twoim var allowedMethods = [

Dodaj 'removeRow'

Wreszcie możesz użyć $("#your-table").bootstrapTable('removeRow',{index:1});

Podziękowania dla tego posta

 0
Author: RickS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-30 17:35:19