romero: Viele onclick's in einer schleife

Beitrag lesen

hab mir da wieder selber was ausgedacht.

hier erstmal ein script-auszug:

		function init_Zusatzmatten()  
		{ ...  
			var ZusatzmatteAuswählen = function()  
			{  
				var z = 0;								//--> Zähler, wenn ungleich ist  
  
				var Zusatz_HTZ = document.Auswahl.Zusatz.options[document.Auswahl.Zusatz.selectedIndex].text;  
				var Zusatz_Variante = document.Auswahl.ZusatzVariante.options[document.Auswahl.ZusatzVariante.selectedIndex].text;  
  
				var x = Zusatz_HTZ + "_" + Zusatz_Variante;  
  
				document.getElementById("msgs").innerHTML = "";  
  
				if( infile_zusatz_tmp.length != 0 )  
				{  
					for( var i = 0; i < infile_zusatz_tmp.length; i++ )  
					{  
						if( x == infile_zusatz_tmp[i] )  
						{  
							infile_zusatz_anzahl_tmp[i]++;  
  
						} else { z++; };  
					};  
  
					if( z == infile_zusatz_tmp.length )  
					{  
						infile_zusatz_tmp.push( Zusatz_HTZ + "_" + Zusatz_Variante );  
						infile_zusatz_anzahl_tmp.push( zaehler );  
					};  
  
				} else {  
						infile_zusatz_tmp.push( Zusatz_HTZ + "_" + Zusatz_Variante );  
						infile_zusatz_anzahl_tmp.push( zaehler );  
					};  
				LöschenInfileZusatz( infile_zusatz_tmp, infile_zusatz_anzahl_tmp );  
			};  
		...};  
  
		function LöschenInfileZusatz( infile_zusatz_tmp, infile_zusatz_anzahl_tmp )  
		{  
			for( var i = 0; i < infile_zusatz_tmp.length; i++ )  
			{  
				document.getElementById( "msgs" ).innerHTML += infile_zusatz_tmp[i] + " / " + infile_zusatz_anzahl_tmp[i] + " ";  
  
				xx = document.createElement( "input" );  
				xx.type ="button";  
				xx.name = "LöscheninfileZusatz";  
				xx.value = "x";  
				xx.id = i;  
  
				document.getElementById( "msgs" ).appendChild(xx);  
				document.getElementById( "msgs" ).innerHTML += "<br>";  
			};  
  
			for( var i = 0; i < infile_zusatz_tmp.length; i++ )  
			{  
				document.getElementById( i ).onclick = function() {  
											//infile_zusatz_anzahl_tmp.splice( i, 1, 7 );  
  
											document.getElementById( "msgs" ).innerHTML += "was ist i: " + i + "<br>";  
										};  
			};  
		};

nun ist aber das problem, dass er im letzten abschnitt in der letzten for-schleife zwar durch das "i" auf die richtige id zugreift, also halt 0, 1, 2, ... (je nachdem wieviele einträge da sind) aber in der darauffolgenden function ist i immer der letzte eintrag also bei einer length von 3 ist an dieser besagten stelle i=2. wie kann das sein?

somit kann ich auch dieses splice nicht richtig anwenden.kann mir da einer helfen wie ich halt zu jeder passenden id bzw i den richtigen wert ändern kann?

denn somit kann ich auch dieses splice nicht anwenden:

infile_zusatz_anzahl_tmp.splice( i, 1, (infile_zusatz_anzahl_tmp[i]-1) );

lg romero