Mit getElementsByClassName Bereich festlegen

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. :smiley:

Das wäre der 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.

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:

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“.

Nun bekommt aber nur jeder zweite Tag mit der class=„entry-title“ die neue Klasse „entry-title-main“.

Arrays beginnen bei 0 :wink:

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. :slight_smile:

Warum machst du es dir so schwer? Ich hatte doch bereits gesagt, wie es geht.

[CODE]

$(‚p.foo‘).each(function(index, value) {
if ( index !== 0 ) {
$(this).removeClass(‚foo‘).addClass(‚bar‘);
}
});[/CODE]

Ich habe das Beispiel mal aufgebaut.

http://jsfiddle.net/tightman/6RCxe/

@Tronjer: Sorry, zu spät gesehen. Du hast schon recht, dass das mit jQuery auch (einfacher) wäre, nur wurmt es mich gerade und mich würde es interessieren, wo dort der Fehler ist. :slight_smile:

Hier wäre das Beispiel mit jQuery, aber auch dort funzt es nicht (wegen index?).

http://jsfiddle.net/tightman/Jnuy2/

Ich habe den „Fehler“ nun gefunden. i+1 müsste es lauten:

[CODE]

Erstes Element
Zweites Element
Drittes Element
Viertes Element
Fünftes Element
Sechstes Element
Siebentes Element
Achtes Element
[/CODE]

Das wundert mich etwas. Ich dachte ich nutze immer i++ um um 1 zu erhöhen Oo