[JavaScript] Klassennamen einer Tabelle auslesen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von MaXxer15, 15. März 2011 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. März 2011
    Klassennamen einer Tabelle auslesen

    Hallo zusammen!
    Nach stundenlangem googlen und Foren durchsuchen bin ich leider nicht fündig geworden. Und zwar habe ich folgendes Problem:

    Ich habe z.B. eine Tabelle mit der Klasse blau. Bei dieser sollen sich die Tabellenzeilen in jeweils einem anderen blau (je nach gerader oder ungerader Zeile) unterscheiden. Dies hab ich folgendermaßen realisiert (JQuery vorhanden!):

    Code:
    function style {
    $(document).ready(function() {
    if ($("table").hasClass("blau")) {
    $("tbody").find("tr:even").addClass("even");
    $("tbody").find("tr:odd").addClass("odd");
    };})
    Allerdings werden die User ja nicht nur die Klasse blau, sondern z.B. auch rot verwenden. Deshalb von der Logik her wollte ich den Klassennamen in einer Variable abspeichern (z.B. var color) und dann die Variable mit einer Switchfunktion benutzen.

    z.B. (jetzt nich codekonform):
    Code:
    switch (color) {
    red = rufe Funktion style auf mit der Variable color (die Variable ist im oberen Quelltext noch nicht eingebaut)
    blue=
    yellow=
    ...
    }
    Bin schon seit mind. 3 Stunden daran einen Weg zu finden, wie ich den Klassennamen eines Table-Tags auslesen kann. Ich hoffe ihr könnt mir dabei helfen!

    Mfg MaXxer21
     
  2. 15. März 2011
    AW: Klassennamen einer Tabelle auslesen

    Code:
    function style(color) {
     if ($("table").hasClass(color)) {
     $("tbody").find("tr:even").addClass("even");
     $("tbody").find("tr:odd").addClass("odd");
     }
    }
    
    $(document).ready(function() { 
     style("blau"); 
     style("rot"); 
     style("gruen");
    });
    ??
     
  3. 15. März 2011
    AW: Klassennamen einer Tabelle auslesen

    Ich glaube ich muss mich etwas präziser formulieren aber danke Murdoc für deine schnelle Antwort:

    Und zwar geht es um ein Wiki. In einem Wikibeitrag kann der User Tabellen erstellen und denen Klassen zuweisen. Das ganze sieht im Wikicode dann so aus:

    Code:
    {|class="blau" <-- gleichbedeutend mit <table>
    |- <-- gleichbedeutend mit <td>
    |Test 1 <-- gleichbedeutend mit <tr>
    |Test 2
    |Test 3
    |-
    |Test 4
    |Test 5
    |Test 6
    |} <-- gleichbedeutend mit </table> (td und tr Tags werden automatisch geschlossen)
    
    Per Javascript in der common.js Datei (die beim Aufruf der Seite automatisch eingebunden wird) will ich nun angeben, dass wenn der User die Klasse blau verwendet, die Tabellenzeilen sich jeweils farblich in ihrem Blau unterscheiden. Das funktioniert soweit auch mit dem oberen Script. Allerdings will der User ja auch mal die class yellow angeben, bei der sich die Tabellenzellen farblich in ihrem Gelb unterscheiden. Dafür werden in der CSS Datei 2 Klassen definiert (z.B. .evenyellow und .oddyellow). Und damit ich dann nich ständig if-else Abfragen machen müsste (die funktionieren würden), will ich das ganze in eine Switch-Abfrage stecken. Die Switchabfrage soll die Variable "color" verwenden und je nach Inhalt der Variable (z.B. yellow) die Funktion mit der Variable Yellow aufrufen.

    Stell ich mir unkonventionell so vor:

    Code:
    switch (color)
    {
    blau = function schießmichtod(blau)
    gelb = function schießmichtod(gelb)
    }
    
    Und das einzige was mir fehlt ist die definierte Variable color. Die sollte von der Logik her so aussehen:

    Code:
    var color = lese den Klassennamen aus der Tabelle aus
    Ich brauche den Klassennamen! Nicht die Klasse mit ihren Attributen selbst. Alternativ könnte man glaub ich auch die Farbe der Tabelle auslesen, diese in eine Variable packen und die Switchabfrage dann so gestalten:

    Code:
    switch (hex)
    {
    #000000 = function schießmichtod(blau)
    #000001 = function schießmichtod(gelb)
    }
    
    Ich hoffe das ist einigermaßen verständlich. Ich bin leider nicht der Javascriptcrack und beschäftige mich nun seit ca. 3 Tagen mit dem Script insgesamt. Es wird das einzige Javascript sein und desshalb will ich mich nicht umbedingt intensiver als nötig in das Thema einarbeiten. Von der Logik her sieht mir das aus wie eine simple Abfrage des Klassennamens einer Tabelle. Nur das Verständnis für die Umsetzung in JavaScript fehlt leider total

    Mfg MaXxer21
     
  4. 15. März 2011
    AW: Klassennamen einer Tabelle auslesen

    wenn du das tabellen objekt hast, dann sowas in der art

    Code:
    alert( $(tblEl).attr("class") );
    
    dann bekommst du den klassennamen.

    zu css noch was.
    es ist nicht nötig mit .evenyellow und .oddyellow zu arbeiten.
    dir ist blau, gelb rot tabelle bekannt.

    dann
    .blau .odd {}
    .gelb .odd {}
    usw.

    und hier was zu switch SELFHTML: JavaScript / Sprachelemente / Bedingte Anweisungen (if-else/switch)
     
  5. 15. März 2011
    AW: Klassennamen einer Tabelle auslesen

    Ich danke euch!
    Ich werde es wohl doch einfach mit if und else-if Abfragen machen, da es sich generell nur um 6 auswählbare Farben handelt und ich bei der Abfrage der Klasse Probleme kriegen würde, wenn ich mehrere Klassen im Editor eingebe. Die müsste ich dann wieder mit Arrays ausgeben und dann prüfen ob eine von den 6 Farben vorhanden ist und so weiter... da zieh ich es vor den Client lieber die 6 if-Abfragen jedes Mal machen zu lassen. Aber danke für eure Hilfe! Bewertung habt ihr!

    Mfg MaXxer21
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.