• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mit getElementsByClassName Bereich festlegen

tigtman

Mitglied
Hallo,

ich suche schon wie bekloppt und kann nichts finden. Ist es möglich, mit getElementsByClassName auch einen Bereich festzulegen?

Auf einer Seite möchte ich alle Tags, bis auf das erste, mit der gleichen Klasse überschreiben. Ich kann ja nicht einfach [>0] reinschreiben. :D

Das wäre der Code:
Code:
function entryTitleManipulation() {
    document.getElementsByClassName("entry-title")[0].className="entry-title-main";
}
window.onload=entryTitleManipulation;

Kann mir einer sagen, wie ich den Bereich einfach festlegen kann? Danke.
 
Du hast eine Anzahl von HTML-Elementen mit der Klasse .entry-title. Diese schickst du durch eine foreach Schleife und machst mit jedem Element etwas, das nicht index === 0 ist. Ich würde das mit jQuery erledigen, das bringt die notwendigen Funktionen each(), addClass() und removeClass() gleich mit.
 
Code:
var elemente = document.getElementsByClassName("entry-title");
for(var i=1;i<elemente.length;i++){ elemente[i].className="entry-title-main"; }
 
@Tronjer : Vielen Dank. Da habe ich einen interessanten Link gefunden: http://staticfloat.com/javascript/javascript-foreach-schleife/

@threadi : Ich habe nun folgendes probiert:

Code:
function entryTitleManipulation() {
    var elemente = document.getElementsByClassName("entry-title");
    for (var i = 1; i < elemente.length; i++) {
        elemente[i].className = "entry-title-main";
    }   
}
window.onload=entryTitleManipulation;

Nun bekommt aber nur jeder zweite Tag mit der class="entry-title" die neue Klasse "entry-title-main".
 
Ja, das dachte ich mir auch und habe es bereits probiert. Wenn man bei 0 beginnt, dann werden die Elemente 1,3,5,7,9 etc. mit der neuen Klasse versehen. :)
 
Warum machst du es dir so schwer? Ich hatte doch bereits gesagt, wie es geht.

Code:
<p class="foo"></p>
<p class="foo"></p>
<p class="foo"></p>

$('p.foo').each(function(index, value) {
  if ( index !== 0 ) {
    $(this).removeClass('foo').addClass('bar');
  }
});
 
Ich habe den "Fehler" nun gefunden. i+1 müsste es lauten:

Code:
<script>

    function entryTitleManipulation() {
        var elemente = document.getElementsByClassName("entry-title");
        for (var i = 1; i < elemente.length; i+1) {
            elemente[i].className = "entry-title-main";
        }
    }
window.onload=entryTitleManipulation;

</script>

<div class="entry-title">Erstes Element</div>
<div class="entry-title">Zweites Element</div>
<div class="entry-title">Drittes Element</div>
<div class="entry-title">Viertes Element</div>
<div class="entry-title">Fünftes Element</div>
<div class="entry-title">Sechstes Element</div>
<div class="entry-title">Siebentes Element</div>
<div class="entry-title">Achtes Element</div>
 
Zurück
Oben