2659 Stimmen

Tabellenzeile in jQuery hinzufügen

Was ist die beste Methode in jQuery, um eine zusätzliche Zeile zu einer Tabelle als die letzte Zeile hinzufügen?

Ist das akzeptabel?

$('#myTable').append('<tr><td>my data</td><td>more data</td></tr>');

Gibt es Beschränkungen für das, was Sie zu einer solchen Tabelle hinzufügen können (z. B. Eingaben, Auswahlen, Anzahl der Zeilen)?

4 Stimmen

Vielen Dank, Ash. Ich bin auch gerade lernen jQuery und finden es schwer, herauszufinden, den besten Weg, vor allem einfache Dinge. Der Grund, warum sie als 2 Fragen sind, ist, weil ich eine gepostet und dann fast eine Stunde später erkannte ich, dass ich die andere in gesetzt haben sollte und dachte nicht, ich sollte die erste ändern.

33 Stimmen

19 Stimmen

FYI - Vermeiden Sie die Verwendung mehrerer Anhänge (verlangsamt die Leistung enorm), sondern bauen Sie Ihre Zeichenfolge oder verwenden Sie JavaScript join, die viel schneller ist.

0voto

mostafa toloo Punkte 41
var html = $('#myTableBody').html();
html += '<tr><td>my data</td><td>more data</td></tr>';
$('#myTableBody').html(html);

oder

$('#myTableBody').html($('#myTableBody').html() + '<tr><td>my data</td><td>more data</td></tr>');

1 Stimmen

Wurde Ihr Variablenname htm von html ... Auch warum nehmen Sie die gesamte Tabelle HTML? Wird dadurch nicht die neue Zeile nach sagen wir tbody ?

0 Stimmen

Variable behoben, vielen Dank. Ich habe body html verwendet, nicht die gesamte Tabelle.

-1voto

Hassan Sadeghi Punkte 1286

TIPP: Einfügen von Zeilen in html table über innerHTML or .html() ist in einigen Browsern nicht gültig (ähnlich IE9 ), und die Verwendung von .append("<tr></tr>") ist in keinem Browser ein guter Vorschlag. am besten y schnellste Weg ist die Verwendung der pure javascript Codes.

für diese Art der Kombination mit jQuery fügen Sie nur ein neues Plugin wie dieses zu jQuery :

$.fn.addRow=function(index/*-1: add to end  or  any desired index*/, cellsCount/*optional*/){
    if(this[0].tagName.toLowerCase()!="table") return null;
    var i=0, c, r = this[0].insertRow((index<0||index>this[0].rows.length)?this[0].rows.length:index);
    for(;i<cellsCount||0;i++) c = r.insertCell(); //you can use c for set its content or etc
    return $(r);
};

Und jetzt verwenden Sie es in dem ganzen Projekt so:

var addedRow = $("#myTable").addRow(-1/*add to end*/, 2);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X