Tabellen dynamisch in HTML hinzufügen_PowerNode Java Academy

Tabellen dynamisch in HTML hinzufügen_PowerNode Java Academy

Ohne weitere Umschweife werde ich den Code direkt für Sie posten. Der spezifische Code lautet wie folgt:

<html>  
    <head><title>Tabelle</title></head>  
    <Text>  
        <Tabellengrenze="1">  
            <Kopf>  
                <tr>  
                    <td>Vorname</td>  
                    <td>Nachname</td>  
                    <td> </td>  
                </tr>  
            <Kopf>  
            <tbody id="tb">  
                <tr id="1.">  
                    <td>Vertrauen</td>  
                    <td>Drei</td>  
                    <td><input type="button" value="Hinzufügen" onclick="add()">   
                    <input type="button" value="Entf" onclick="del(this)"></td>  
                </tr>  
            </tbody>  
        </Tabelle>  
    </body>  
</html>  
<Skript>  
    Funktion add() {  
        var trObj = document.createElement("tr");  
        trObj.id = neues Date().getTime();  
        trObj.innerHTML = "<td><input name='Vorname'/></td><td><input name='Nachname'/></td><td><input type='button' value='Hinzufügen' onclick='add()'> <input type='button' value='Entf' onclick='del(this)'></td>";  
        document.getElementById("tb").appendChild(trObj);  
    }  
    Funktion del(Objekt) {  
        var trId = obj.parentNode.parentNode.id;  
        var trObj = document.getElementById(trId);  
        document.getElementById("tb").removeChild(trObj);  
    }  
</Skript>

Im obigen Code konstruieren wir zunächst eine Tabelle im Textkörper. Um nachfolgende Operationen zu erleichtern, fügen wir der Tabelle thead- und tbody-Tags hinzu. Das thead-Tag gibt den Tabellenkopf an und das tbody-Tag den Tabellentext.

Die Tabelle im Beispiel hat drei Spalten: Die erste Spalte enthält den Vornamen, die zweite Spalte enthält den Nachnamen und die dritte Spalte ist die Operationsspalte.

Die Spalte „Operation“ enthält zwei Operationen: Eine dient zum Hinzufügen einer Zeile zur Tabelle und die andere zum Löschen der aktuellen Zeile. Die Vorgänge zum Hinzufügen und Löschen von Zeilen sind jeweils an zwei Schaltflächen gebunden. Wenn auf die Schaltfläche geklickt wird, werden die entsprechenden Vorgänge zum Hinzufügen und Löschen von Zeilen ausgelöst.

Zeile hinzufügen (Methode)

Funktion add() {  
        var trObj = document.createElement("tr");  
        trObj.id = neues Date().getTime();  
        trObj.innerHTML = "<td><input name='Vorname'/></td><td><input name='Nachname'/></td><td><input type='button' value='Hinzufügen' onclick='add()'> <input type='button' value='Entf' onclick='del(this)'></td>";  
        document.getElementById("tb").appendChild(trObj);  
    }

Die erste Zeile erstellt ein tr-Element, also eine Tabellenzeile.

Die zweite Zeile, trObj.id = new Date().getTime(); fügt dieser Zeile ein ID-Attribut hinzu und weist dem Attribut einen Wert zu, der die Millisekunden des aktuellen Systems übernimmt. Dies wird hauptsächlich beim Löschen benötigt.

Die dritte Zeile, trObj.innerHTML = "<td><input name='firstName'/></td><td><input name='lastName'/></td><td><input type='button' value='Add' onclick='add()'>

<input type='button' value='Del' onclick='del(this)'></td> "; Weisen Sie den Tabellenzeilen Werte zu und verwenden Sie das Attribut innerHTMML, um den HTML-Codeinhalt zwischen dem Tag <tr> und dem Tag </tr> festzulegen. Dabei handelt es sich um den hinzuzufügenden Zeileninhalt.

Die vierte Zeile, document.getElementById("tb").appendChild(trObj); fügt die erstellte Tabellenzeile zum Tabellenkörper hinzu.

Methode „Zeile löschen“

Funktion del(Objekt) {  
    var trId = obj.parentNode.parentNode.id;  
    var trObj = document.getElementById(trId);  
    document.getElementById("tb").removeChild(trObj);  
}

In der Löschmethode wird ein Parameter übergeben. In der Zeilenaddiermethode können wir sehen, dass der Parameter this in der Löschmethode del übergeben wird. Das this im Seitencode bezieht sich auf das aktuelle HTML-Element, also das <input>-Feld, in dem sich this befindet.

Die erste Zeile, var trId = obj.parentNode.parentNode.id ; ruft die ID des übergeordneten Knotens des übergeordneten Knotens des aktuellen Elements ab, d. h. die ID der zu löschenden Zeile.

Die zweite Zeile, var trObj = document.getElementById(trId); ruft das zu löschende Zeilenelement ab.

Die dritte Zeile, document.getElementById("tb").removeChild(trObj); entfernt die Zeile im Tabellenkörper.

Mangel

Der obige Code implementiert grundsätzlich die Funktion zum dynamischen Hinzufügen und Löschen von Zeilen in der Tabelle, der Code weist jedoch immer noch Mängel auf, hauptsächlich in den folgenden zwei Punkten:

1 Die Tabellenbreite ändert sich vor und nach dem Hinzufügen von Zeilen

Vorderseite hinzufügen

Nach dem Hinzufügen einer Zeile

Nach dem Hinzufügen von Zeilen werden die Tabellenspalten breiter

2 Der chinesische Text auf der vom Browser geöffneten Standardseite ist verstümmelt

Sie müssen die Zeichenkodierung festlegen, um das Seitenkodierungsformat zu ändern, bevor es normal angezeigt werden kann

<<:  17 hervorragende Webdesigns, sorgfältig von Startups entwickelt

>>:  Detaillierte Erläuterung, wie Vue Werte zurückgibt, um Formulare dynamisch zu generieren und Daten zu übermitteln

Artikel empfehlen

Installieren Sie das komprimierte MySQL5.7-Paket schnell unter Windows

In diesem Artikel erfahren Sie, wie Sie das kompr...

So fügen Sie einen Docker-Port hinzu und erhalten eine Docker-Datei

Holen Sie sich das Dockerfile aus dem Docker-Imag...

base target="" gibt das Ziel des Basislinks zum Öffnen des Frames an

<base target=_blank> ändert den Zielrahmen d...

Zusammenfassung der HOC-Nutzung von React-High-Order-Komponenten

Ein Satz zur Einführung von HOC Was ist eine Komp...

Analyse der Unterschiede zwischen Iframe und FRAME

1. Verwendung des Iframe-Tags <br />Wenn es ...

Lösung für das Problem, dass MySQL Daten sehr langsam löscht und einfügt

Wenn ein Unternehmensentwickler eine Insert-Anwei...

Erste Schritte Tutorial für Anfänger⑧: Einfaches Erstellen einer Artikel-Site

In meinem letzten Beitrag habe ich darüber gesproc...

Detaillierte Erklärung des SELINUX-Arbeitsprinzips

1. Einleitung Der Hauptvorteil, den SELinux für L...