Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Wie kann man Tabellenzeilen mit jQuery dynamisch erweitern und reduzieren?

Barbara Streisand
Freigeben: 2024-11-05 06:09:02
Original
554 Leute haben es durchsucht

How to Dynamically Expand and Collapse Table Rows with jQuery?

Tabellenzeilen dynamisch mit jQuery erweitern und reduzieren

Problem:

Tabelle wird erweitert oder reduziert Zeilen, wenn auf eine bestimmte Spaltenüberschrift geklickt wird, stellt eine Herausforderung dar. Um diese Aufgabe zu vereinfachen, kann eine benutzerdefinierte CSS-Klasse verwendet werden, um Zeilen in jedem Header zu unterscheiden. Allerdings kann die Verwaltung mehrerer CSS-Klassen für mehrere Header umständlich werden.

Lösung:

Um die Komplexität der Verfolgung mehrerer CSS-Klassen zu vermeiden, nutzt ein alternativer Ansatz das nextUntil( )-Methode in jQuery. Diese Methode ruft alle Zeilen ab, die auf die angeklickte Kopfzeile folgen, bis die nächste Kopfzeile gefunden wird.

Code-Snippet:

<code class="javascript">$('.header').click(function(){
    $(this).nextUntil('tr.header').slideToggle(1000);
});</code>
Nach dem Login kopieren

HTML-Struktur:

<code class="html"><table border="0">
  <tr class="header">
    <td colspan="2">Header</td>
  </tr>
  <tr>
    <td>data</td>
    <td>data</td>
  </tr>
  <tr>
    <td>data</td>
    <td>data</td>
  </tr>
</table></code>
Nach dem Login kopieren

Beispiel:

In diesem Beispiel wird der Kopfzeile eine Klasse „header“ zugewiesen. Wenn auf eine Kopfzeile geklickt wird, werden die Zeilen direkt darunter mithilfe der slideToggle()-Methode zwischen ausgeblendet und sichtbar umgeschaltet.

Zusätzliche Funktionen:

  • Sie können ein span-Element in der Kopfzeile verwenden, um ein „ “ oder „-“-Zeichen anzuzeigen, das umschaltet, nachdem die Zeile erweitert oder reduziert wurde:
<code class="javascript">$('.header').click(function(){
    $(this).find('span').text(function(_, value){return value=='-'?'+':'-'});
    $(this).nextUntil('tr.header').slideToggle(100);
});</code>
Nach dem Login kopieren
  • Um den Bereich umzuschalten Symbol/Text asynchron nach Abschluss des Umschaltens verwenden Sie die Promise() der slideToggle()-Methode:
<code class="javascript">$(this).nextUntil('tr.header').slideToggle(100).promise().done(function () {
    $this.find('span').text(function (_, value) {
        return value == '-' ? '+' : '-'
    });
});</code>
Nach dem Login kopieren
  • Alternativ können Sie ein CSS-Pseudoelement verwenden, um die Erweiterung/Reduzierung darzustellen Unterzeichnen Sie eine Klasse und schalten Sie sie in der Kopfzeile um:
<code class="css">.header .sign:after{
    content:"+";
    display:inline-block;      
}
.header.expand .sign:after{
    content:"-";
}</code>
Nach dem Login kopieren
<code class="javascript">$(this).toggleClass('expand').nextUntil('tr.header').slideToggle(100);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann man Tabellenzeilen mit jQuery dynamisch erweitern und reduzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage