zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden getElementsByClassName in der Schleife

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 15.10.2016, 15:48
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 30.09.2015
Beiträge: 34
mitchm befindet sich auf einem aufstrebenden Ast
Standard getElementsByClassName in der Schleife

Hallo zusammen,

ich habe ein button.

Code:
var SDbutton = document.getElementsByClassName("SDbutton");
und eine schleife

Code:
for(var i = 0; i<SDbutton.length; i++){
		console.log("test" + i);
		SDbutton[i].onclick = function(){
			//alert(i);
			console.log("nla " + i);
		}
	}
die erste consolen ausgabe ergibt
Code:
test0
test1
test2
aber sobald ich einen meine 3 buttons klicke, bekomme ich immer

Code:
nla3
egal welchen Button ich drücke.

warum? i geht doch nur bis 2 nicht bis 3...
wird i etwa nicht in die onclick funktion übergeben?
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 16.10.2016, 20:50
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von mitchm Beitrag anzeigen
wird i etwa nicht in die onclick funktion übergeben?
Nein, wenn du klickst hat i den Wert nach dem letzten Schleifendurchgang.

Du musst das i kapseln, in einen eigenen Gültigkeitsbereich verlagern. So müsste es gehen.
Code:
for(var i = 0; i<SDbutton.length; i++){
		console.log("test" + i);
		SDbutton[i].onclick = (function(ii) {
                        return function(){
			console.log("nla " + ii);
        		}
       		})(i);
	}
(Die Umbenennenung des inneren i wäre nicht notwendig)
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Einen CKEditor mehrfach in einer foreach Schleife nutzen PHP-Freak Serveradministration und serverseitige Scripte 1 10.06.2012 02:25
select options mit schleife füllen wurstsalat Javascript & Ajax 1 13.11.2011 14:00
Schleife Chris2011 Javascript & Ajax 3 01.07.2011 16:05
For Schleife optimieren rs-web Serveradministration und serverseitige Scripte 13 12.08.2010 23:39
nächster eintrag einer foreach schleife tichy Serveradministration und serverseitige Scripte 1 23.11.2008 14:54


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:05 Uhr.