Tim: Tabellenzeile "ausgrauen" / JQuery

Hallo,

ich möchte über JQuery mehrere Tabellenzeilen "ausgrauen". Aber mir fehlt noch so ein bißchen die Idee, wie ich das machen soll.

Vielleicht könnte ich ein transparentes DIV über die Zeile legen, das würde den Effekt bringen.

Oder gibt es da eine "Standardvorgehensweise" für?

Tim

  1. ich möchte über JQuery mehrere Tabellenzeilen "ausgrauen". Aber mir fehlt noch so ein bißchen die Idee, wie ich das machen soll.

    ...

    Oder gibt es da eine "Standardvorgehensweise" für?

    Ja. Man weise der Tabellenzeile eine (weitere) Klasse zu (Antwort 15 sieht gut aus) und formatiere die Zeile bzw. die Zellen darin mit CSS.

    Das ist ziemlich basic. Dafür braucht es also nicht jQuery.

    Jörg Reinholz

    1. @@Jörg Reinholz:

      nuqneH

      Ja. Man weise der Tabellenzeile eine (weitere) Klasse zu (Antwort 15 sieht gut aus)

      Nein. Die sah mal gut aus – zu ihrer Zeit. Aber Schönheit ist vergänglich.

      Jetzt nimmt man die add-Methode des classList-Objekts.

      Das ist ziemlich basic. Dafür braucht es also nicht jQuery.

      Das ist ziemlich basic. Dafür braucht es also nicht einen regulären Ausdruck.

      Bei den paar im Umlauf befindlichen alten IE wird die Zeile halt nicht ausgegraut; geht die Welt dann unter? Wenn ja, vorher noch schnell den Polyfill eingebaut.

      Qapla'

      --
      „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
      1. Jetzt nimmt man die add-Methode des classList-Objekts.

        Das ist ja tatsächlich noch viel besser.

        Jörg Reinholz

      2. Hi,

        Jetzt nimmt man die add-Methode des classList-Objekts.

        Bitte klärt mich mal auf:

        Ich habs jetzt so gelöst:

          
        $(\"#my_id\").click(function() {  
        $('.zeilenklasse').addClass(\"ausgrauen\");  
        ...  
        
        

        Hätte ich das besser anders gelöst?

        Tim

        1. @@Tim:

          nuqneH

          $("#my_id").click(function() {
          $('.zeilenklasse').addClass("ausgrauen");
          ...

            
          Die \ im JS-Code sind falsch.  
            
          Und entscheide dich für einfache oder doppelte Anführungszeichen, aber sei konsequent. Ich [empfehle](http://forum.de.selfhtml.org/archiv/2014/3/t216697/#m1486530) in HTML doppelte, in PHP und JavaScript einfache.  
            
          ``$('.zeilenklasse')`{:.language-javascript}`? Soll das heißen, du hast `<tr class="zeilenklasse">`{:.language-html} im HTML zu stehen? Das wäre ziemlicher Blödsinn, denn durch den Elementtypen tr ist der Inhalt bereits als Tabellenzeile ausgezeichnet; noch eine Klasse dafür wäre unsinnig.  
            
          In jQuery kannst du auch `$('#my_id tr')`{:.language-javascript} oder `$('#my_id').find('tr')`{:.language-javascript} selektieren.  
            
          Wenn du jQuery ohnehin schon verwendest. Wie gesagt, geht das auch mit Vanilla-JS.  
            
          Klassen sollten niemals anhand der gegenwärtig(!) gewünschten Darstellung benannt werden. Also nicht "ausgegraut". Sondern nach der Funktion. Vielleicht passt "disabled"? Was, wenn dir einfiele, diese Tabellenzeilen nicht auszugrauen, sondern z.B. rot zu färben, oder gar nicht anzuzeigen?  
            
          ``.ausgegraut { color: red }`{:.language-css}` wäre ziemlich blöd; ``.disabled { color: red }`{:.language-css}` ginge immer noch.  
            
          Qapla'
          
          -- 
          „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
          
          1. Hi,

            Die \ im JS-Code sind falsch.

            Schon klar. Aber Du weißt sicher, woher die \ kommen...

            ``$('.zeilenklasse'){:.language-javascript}? Soll das heißen, du hast <tr class="zeilenklasse"> im HTML zu stehen? Das wäre ziemlicher Blödsinn, denn durch den Elementtypen tr ist der Inhalt bereits als Tabellenzeile ausgezeichnet; noch eine Klasse dafür wäre unsinnig.

            Mal abgesehen davon, daß "zeilenklasse" ein Alias für den wirklichen Klassennamen ist, ist das ganz und gar kein Blödsinn. Denn ich möchte bei weitem nicht alle Tabellenzeilen selektieren, sondern nur ganz bestimmte. Nämlich die der Klasse "zeilenklasse".

            Klassen sollten niemals anhand der gegenwärtig(!) gewünschten Darstellung benannt werden. Also nicht "ausgegraut". Sondern nach der Funktion. Vielleicht passt "disabled"? Was, wenn dir einfiele, diese Tabellenzeilen nicht auszugrauen, sondern z.B. rot zu färben, oder gar nicht anzuzeigen?

            Auch hier gilt:

            ausgegraut = Alias für den wirklichen Namen.

            Hm, aber miene Frage ist letztlich nicht beantwortet. Hätte ich es besser anders gemacht?

            Tim

            1. @@Tim:

              nuqneH

              Schon klar. Aber Du weißt sicher, woher die \ kommen...

              Aus serverseitigem Code, der in der Beschreibung eines clientseitigen Problems nichts zu suchen hat?

              Übrigens sollte auch in PHP kein Markup mit maskierten Anführungszeichen vorkommen, wenn man’s richtig™ macht und nicht HTML in PHP, sondern PHP in HTML schachtelt.

              Mal abgesehen davon, daß "zeilenklasse" ein Alias für den wirklichen Klassennamen ist …
              Auch hier gilt: ausgegraut = Alias für den wirklichen Namen.
              Hm, aber miene Frage ist letztlich nicht beantwortet. Hätte ich es besser anders gemacht?

              Du zeigst nicht den wirklichen Code aber willst wissen, was an dem nicht gezeigten Code besser zu machen wäre? Ernsthaft?

              Qapla'

              --
              „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
              1. Du zeigst nicht den wirklichen Code aber willst wissen, was an dem nicht gezeigten Code besser zu machen wäre? Ernsthaft?

                Gunnar ...

                Du hast ja völlig recht, aber schimpfe doch nicht wieder wie ein Rohrspatz.
                (Ich weiß: ich hab's oft genug selbst getan...)

                Jörg Reinholz

                1. @@Jörg Reinholz:

                  nuqneH

                  Du hast ja völlig recht, aber schimpfe doch nicht wieder wie ein Rohrspatz.

                  Also, wenn ich wie ein Rohrspatz schimpfe, DANN SIEHT DAS ANDERS AUS! ;-)

                  Aber wenn man sich die Mühe macht zu erklären, warum die gezeigten Bezeichner Kacke sind und der andere einem entgegenschmettert „:-b sind ja auch nicht die wirklichen“, ja, dann ist man schon kurz davor.

                  Qapla'

                  --
                  „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  2. Om nah hoo pez nyeetz, Tim!

    ich möchte über JQuery mehrere Tabellenzeilen "ausgrauen". Aber mir fehlt noch so ein bißchen die Idee, wie ich das machen soll.

    Definiere „ausgrauen“.
    Sollen die Zeilen erst nach einer Benutzeraktion ausgegraut werden? Nach welcher?

    Matthias

    --
    Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Grat und Gratifikation.