So implementieren Sie die Vervollständigung leerer Zellen in HTML-Tabellen

So implementieren Sie die Vervollständigung leerer Zellen in HTML-Tabellen

Als ich mir selbst die Webentwicklung beibrachte, gab es kein sogenanntes DIV/CSS-Layout und die Welt wurde vom Tabellenlayout dominiert. Damals stellte sich die Frage: Wie fülle ich die leeren Zellen im Raster aus? ——Das sind die Kopfschmerzen, die ich hatte, als ich an der Produktseite meines Unternehmens arbeitete. Da ich kein Programmierer bin, bin ich bei Problemen, die ein bisschen mit Algorithmen zu tun haben, ratlos, haha. Ich kann mich übrigens erinnern, dass mir der Paging-Algorithmus einige Schwierigkeiten bereitete.

Unter dem sogenannten Grid versteht man eine Tabelle mit 3 Zeilen x 4 Spalten = insgesamt 12 Zellen. Wenn nur 10 Produkte vorhanden sind, werden nur 10 Zellen der Tabelle ausgefüllt und der Rest bleibt leer. Obwohl sie leer sind, müssen die <td></td>-Elemente gerendert werden, da die Tabelle sonst verzerrt aussieht. Natürlich ist es möglich, es fest zu codieren, aber das Problem besteht darin, dass Tabellen von ASP dynamisch gerendert werden. Daher ist die Berechnung und Anzeige des leeren TD ein Problem. Mir sind damals mehrere Methoden eingefallen, die im Nachhinein natürlich nicht sehr sinnvoll waren, aber egal, ich musste es einfach mal probieren… Hauptsache, es lässt sich darstellen… haha.

Später, im Zeitalter von DIV/CSS, wurde Table verworfen. Dem Algorithmus ist es also egal. ——In einem späteren Projekt stellte ich fest, dass das Tabellenlayout immer noch anwendbar war, also dachte ich über dieses kleine Problem nach. Der Code zur dynamischen Steuerung mit JS lautet wie folgt:

/**
 * @class renderTable
 * Geben Sie ein Array und die Anzahl der Spalten ein, um eine Tabellenmarkierung zu generieren.
 * @param {Array} Liste
 * @param {Number} Spalten
 * @param {Funktion} getValue
 */
definieren(Funktion(erfordern, Exporte, Modul) {
 module.exports = Funktion (Liste, Spalten, getValue) {
  diese.liste = Liste;
  diese.cols = cols || 5;
  
  dies.getValue = getValue || dies.getValue;
 }
 
 module.exports.prototype = (neue Funktion(){
  this.render = Funktion(Liste){
   Liste = Liste || diese.Liste;
   
   var len = Liste.Länge;
   var cols = this.cols; // Anzahl der Ziffern var rows;
   var Rest = Länge % Spalten;
   var htmls = [];
    Zeilen = Länge / Rest;
    
   if(remainder == 0){ // Kann ohne Rest geteilt und direkt verarbeitet werden list.forEach(addTr.bind({
     Pässe: Pässe,
     html: html,
     getValue : dies.getValue
    }));
   }else{ // Rest verarbeiten var remainnerArr = list.splice(list.length - remainder);
    
    Liste.fürJeden(addTr.bind({
     Pässe: Pässe,
     html: html,
     getValue : dies.getValue
    }));
   
    // Füllen Sie die Lücken aus. var emptyArr = new Array(cols - remainnerArr.length);
    emptyArr = emptyArr.join('leer');
    emptyArr = emptyArr.split('leer');
    // Rest + leerer Raum remainnerArr = remainnerArr.concat(emptyArr);
    
    wenn(restArr.length != cols){
     throw 'Die Länge der letzten Zeile ist falsch! Die Länge sollte ' + Spalten sein;
    }
    remainnerArr.forEach(addTr.bind({
     Pässe: Pässe,
     html: html,
     getValue : dies.getValue
    }));
   }
   
   
   gibt addTable zurück (htmls.join(''));
  }
  
  /**
   * Die Standardfunktion zum Abrufen des angezeigten Werts. Diese Funktion sollte normalerweise überschrieben werden.
   * @param {Gemischt}
   * @return {String}
   */
  this.getValue = Funktion(Daten){
   Daten zurückgeben;
  }
   
  /**
   * Fügen Sie für jeden Wert ein <td></td> hinzu. Wenn eine Zeile voll ist, fügen Sie ein </tr></tr> hinzu.
   * @param {Gemischtes} Element
   * @param {Zahl} i
   * @param {Array} arr
   */
  Funktion addTr(Element, i, arr){
   var html = '<td>' + this.getValue(item) + '</td>';
   
   wenn(i == 0){
    html = "<tr>" + html;
   }sonst wenn((i + 1) % this.cols == 0 && i != 0){
    html += '</tr><tr>';
   }sonst wenn(i == arr.length){
    html += '</tr>';
   }
   
   dies.htmls.push(html);
  }
  
  /**
   * 
   * @param {String} html
   */
  Funktion Tabelle hinzufügen (html) {
   gibt „<Tabelle>“ + html + „</Tabelle>“ zurück;
 // var Tabelle = document.createElement('Tabelle');
 // Tabelle.innerHTML = html;
 // Tabelle.Rand="1";
 // Dokument.Body.AppendChild(Tabelle);
  }
 });
});

Sie denken vielleicht, dass mir dieses Problem spontan einfällt … Aber ich war damals gerade dabei, meine Karriere zu ändern … Jedes Problem mit ein wenig „technischem Inhalt“ wurde für mich zu einem Stolperstein …

18.05.2019 JSTL-Methode:

<%
 //Leere Zellen vervollständigen String tds = ""; int maxTds = 9; 
 Liste<?> Liste = (Liste<?>)request.getAttribute("Liste");
 für(int i = 0; i < (maxTds - list.size()); i++ ) {
  tds += "<td></td>";
 }
 
 Anfrage.setAttribute("tds", tds);
%>
  <Tabelle>
   <tr>
    <c:foreach Elemente="${Liste}" var="Element">
     <td>
      <h3>${item.name}----${totalCount}</h3>
      <p></p>
      <div></div>
     </td>
     <c:if test="${((currentIndex + 1) % 3) == 0}">
   </tr>
   <tr>
    </c:if>
    <c:if test="${((currentIndex + 1) == totalCount) && (totalCount != 9)}">
     ${tds}
    </c:if>
    </c:foreach>
   </tr>
  </Tabelle>

Dies ist das Ende dieses Artikels zum Ausfüllen leerer HTML-Tabellenzellen. Weitere Informationen zum Ausfüllen leerer HTML-Tabellenzellen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Lösung für die Lücke zwischen Divs

>>:  Schiebemenü mit CSS3 implementiert

Artikel empfehlen

So installieren Sie Graphviz und beginnen mit dem Tutorial unter Windows

Herunterladen und installierenUmgebungsvariablen ...

JavaScript-Entwurfsmuster – Muster der Verantwortungskette

Inhaltsverzeichnis Überblick Code-Implementierung...

Über die richtige Art und Weise der Zeitumrechnung in JS beim Excel-Import

Inhaltsverzeichnis 1. Grundlagen 2. Problembeschr...

Standards zum Schreiben von Codekommentaren bei der Webseitenerstellung

<br />Ich habe die in meiner Arbeit verwende...

Detaillierte Erklärung dreier häufig verwendeter Webeffekte in JavaScript

Inhaltsverzeichnis 1 Element Offset-Serie 1.1 Off...

So implementieren Sie eine MySQL-Datenbanksicherung in Golang

Hintergrund Navicat ist das beste MySQL-Visualisi...

Fallstudie zur Übermittlung von HTML-Formularen

Um die Methode zur Formularübermittlung zusammenz...

Kopieren und Einfügen ist der Feind der Verpackung

Bevor wir über OO, Entwurfsmuster und die vielen o...

Vue nutzt Baidu Maps zur Realisierung der Stadtpositionierung

In diesem Artikel wird der spezifische Code von V...

Eine kurze Analyse von Kubernetes-Controllern und -Labels

Inhaltsverzeichnis 01 Gemeinsame Controller in k8...