ullii: frage zu id

Hi

hab mal ne allgemeine frage zu id
es heißt ja in sämtlichen manuals, dass id eindeutig sein muss.
kann ich trotzdem mehrere id's verteilen, z.b. an alle elemente die ich später mittels javascript dynamisch ändern will?
oder darf id wirklich nur einmal vorkommen?
Bitte keine schätzungen... am besten mit Quelle

  1. Hallo ullii.

    hab mal ne allgemeine frage zu id
    es heißt ja in sämtlichen manuals, dass id eindeutig sein muss.
    kann ich trotzdem mehrere id's verteilen, z.b. an alle elemente die ich später mittels javascript dynamisch ändern will?

    Natürlich. Wenn jede ID in einem Dokument eindeutig ist, steht dem nichts im Wege.

    Einen schönen Mittwoch noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
  2. Hallo,

    hab mal ne allgemeine frage zu id
    es heißt ja in sämtlichen manuals, dass id eindeutig sein muss.
    kann ich trotzdem mehrere id's verteilen, z.b. an alle elemente die ich später mittels javascript dynamisch ändern will?

    Nein. Warum verwendest du dafür keine anderen Attribute wie z.B. Klassen? Wenn du dann an allen Elementen dieser Klasse etwas verändern willst, musst du alle Elemente in einer for-Schleife durchlaufen und die Klasse abfragen.

      
    var allEl = document.getElementsByTagName("*");  
    for (var i = 0; i < allEl.length; i++){  
     if (allEl[i].match(/\bKlassenname\b/)){  
      allEl[i].style.backgroundColor = "blue";  
     }  
    }  
    
    

    („Klassenname“ musst du durch den von dir gewünschten Klassennamen ersetzen)
    Alternativ kannst du dir auch eine Funktion schreiben, die ein Array mit allen Elementen zurückliefert.

    oder darf id wirklich nur einmal vorkommen?

    Einmal pro Dokument.

    mfg. Daniel

    1. Hallo,

      if (allEl[i].match(/\bKlassenname\b/)){

      Hier fehlt noch was. Die Zeile müsste so aussehen:

        
      if (allEl[i].className.match(/\bKlassenname\b/)){
      

      mfg. Daniel

      1. Hi,

        if (allEl[i].match(/\bKlassenname\b/)){

        Hier fehlt noch was. Die Zeile müsste so aussehen:

        if (allEl[i].className.match(/\bKlassenname\b/)){

          
        Daß das nicht zuverlässig funktionieren kann, ist Dir klar?  
          
        Such damit nach einer Klasse namens 'a', und Du findest auch Elemente mit Klassen wie 'a-b', 'b-a' usw.  
          
        Die Wortgrenzen der regulären Ausdrücke passen nicht, da innerhalb eines Klassennamens sowohl Zeichen erlaubt sind, die von der Regex-Maschine als Word-Character betrachtet werden, als auch solche, die als nicht-Word-Character betrachtet werden.  
          
        Vor dem Klassennamen muß nach einer Alternative aus Lookbehind für Stringbeginn (^) und Lookbehind für Whitespace geguckt werden (ein Lookbehind nach Stringbeginn oder Whitespace scheitert in vielen Regex-Maschinen daran, daß für den Lookbehind eine konstante Länge gefordert wird)  
          
        Analog nach dem Klassennamen mit Stringende ($) und Whitespace.  
          
        cu,  
        Andreas
        
        -- 
        [Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
        [Schreinerei Waechter](http://www.schreinerei-waechter.de/)  
        [O o ostern ...](http://ostereier.andreas-waechter.de/)  
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.