Tag automatisch eine klasse zuweisen

  • Ich möchte in einem bestimmten div allen a tags, welche ein img-Element umgeben class="lightbox" zuweisen. Hat da jemand eine Idee wie ich das machen könnte?

  • du könntest nachdem Laden der Seite folgendes Javascript aufrufen:

    Code
    function applyClass(divID, linkKlasse) {
    var links = document.getElementById(divID).getElementsByTagName("A");
    for (var i in links)
    {
    links[i].className = linkKlasse;
    }
    }

    Im HTML sieht das dann so aus:

    Ungetestet!

    Grüße,
    jojo


  • Folgendes wird vom cms ausgegeben:

    HTML
    <div class="icms-album"><a href="/albums/..." rel="lightbox"><img src="/albums/.../thumbnail/..." /></a></div>

    Und jetzt möchte ich, dass all diese Bilder im Content-Div beim a-Tag die klasse lightbox erhalten.
    Also so:

    HTML
    <div class="icms-album"><a class="lightbox" href="/albums/..." rel="lightbox"><img src="/albums/.../thumbnail/..." /></a></div>
  • Dann müsste das so aussehen:

    Einmal editiert, zuletzt von kyr (31. Juli 2009 um 12:55)

  • tolle Fehlerbeschreibung^^


  • So jetzt klappts mit der lightbox. Vielen Dank!

  • Ohne JS würde die Lightbox nicht funktionieren und somit wäre die Funktion sowieso sinnlos.

    Im Firefox klappt das ganze perfekt. Im IE hingegen funktioniert es nicht, d.h. die class wird vermutlich nicht zugewiesen. Kann sich jemand vorstellen,wie das Script für den IE noch angepasst werden muss?

    Danke

  • Die alert Meldung erscheint im IE nicht. Im FF schon.

  • versuchs mal so:

    Dann natürlich auch den Funktionsaufruf anpassen.
    Hatte kürzlich ein ähnliches Problem https://www.forum-hilfe.de/showthread.php?t=43720


  • Versuche es nun mit jQuery

    Code
    <script src="/js/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
          $(document).ready(function()
                    { 
                    $(".icms-album a").addClass("lightbox"); 
                    }
        );
    </script>

    Dieser Code sollte eigentlich allen a-Tags in der div Klasse "icms-album" die Klasse "lightbox" hinzufügen.
    Vermutlich steckt irgendwo noch ein kleiner Fehler bzw. wird die Funktion falsch aufgerufen.

    Einmal editiert, zuletzt von kyr (3. August 2009 um 11:42)

  • Hmm. Meinst du sowas?

    Code
    <script type="text/javascript">
            $(document).ready(function() 
                { 
                var links = $(".icms-album a");
                for (var i in links)
                    {
                         links[i].addClass("lightbox"); 
                    }
            );
      </script>

    Oder nochmal ein for-Block und dann Div und Tag einzeln?

  • Könnte es auch sein, dass sich mootools.js und jquery.js nicht vertragen und es somit nicht funktioniert? Denn ich benutze beide.

  • Versuche das Ganze irgendwie im noConflict() Modus hinzubringen, doch die alert-Meldung wird so nicht angezeigt. Sieht jemand einen fehler?

  • Versuche es nun mit jQuery

    Code
    <script src="/js/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
          $(document).ready(function()
                    { 
                    $(".icms-album a").addClass("lightbox"); 
                    }
        );
    </script>

    Dieser Code sollte eigentlich allen a-Tags in der div Klasse "icms-album" die Klasse "lightbox" hinzufügen.
    Vermutlich steckt irgendwo noch ein kleiner Fehler bzw. wird die Funktion falsch aufgerufen.

    Ansich funktionierts ganz gut...

    Zitat


    Könnte es auch sein, dass sich mootools.js und jquery.js nicht vertragen und es somit nicht funktioniert? Denn ich benutze beide.

    Ich nehme mal an du hast irgendwelche Konflikte da

    Gruß crAzywuLf :D

  • Nun funktionierts überall. Vielen Dank an alle!