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    

Artikel empfehlen

Grundlegende Kenntnisse zur MySQL-Wurmreplikation

Würmer replizieren sich, wie der Name schon sagt,...

Beheben von Problemen mit impliziter MySQL-Konvertierung

1. Problembeschreibung root@mysqldb 22:12: [xucl]...

Rsync+crontab regelmäßige Synchronisierungssicherung unter centos7

In letzter Zeit möchte ich regelmäßig wichtige in...

So verwenden Sie Vue+ElementUI Tree

Die Verwendung von Vue + ElementUI Tree dient zu ...

So fügen Sie eindeutige Indizes für Felder in MySQL hinzu und löschen sie

1. PRIMARY KEY hinzufügen (Primärschlüsselindex) ...

Detaillierte Erklärung von JavaScript zur Überwachung von Routenänderungen

Inhaltsverzeichnis Geschichte pushState() Methode...

Ein kurzer Vortrag über JavaScript Sandbox

Vorwort: Apropos Sandboxen: Wir denken vielleicht...

Zehn Erfahrungen im Webdesign im Jahr 2008

<br />Das Internet verändert sich ständig un...

Der Unterschied zwischen HTML-Block-Level-Tags und Inline-Tags

1. Blockebenenelement: bezieht sich auf die Fähigk...

Empfohlene Plugins und Anwendungsbeispiele für Vue-Unit-Tests

Inhaltsverzeichnis rahmen Erstklassiges Fehlerrep...

So verwenden Sie Maxwell zum Synchronisieren von MySQL-Daten in Echtzeit

Inhaltsverzeichnis Über Maxwell Konfiguration und...