peterS.: Variablen je nach Text auswählen

Beitrag lesen

gruss Stephan

...
Ich habe eine ganze Reihe von Arrays:

arr_1 = new Array("inhalte");
arr_2 = new Array("inhalte");
arr_3 = new Array("inhalte");
...

Nun möchte ich je nachdem welches Element ich im eigentlichem
Dokument angeklickt habe die Arrays danach auswählen.
Klicke ich z.B. auf "Element 1", dann übermittle ich eine 1
und es  soll Arr_1 verarbeitet werden.
...

dafuer bieten sich gleich mehrere, verschieden elegante,
loesungen an.

erstens)

Deine hoechstwahrscheinlich global (also im [window]-scope)
initialisierten arrays werden nicht ueber ihren namen referenziert,
sondern ueber den jeweiligen index eines arrays dessen member sie
sind (konzept: "array of arrays").

var contentList = new Array(); // oder auch: var contentList = [];  
  
contentList[0] = new Array("inhalte01"); // contentList[0] = ["inhalte01"];  
contentList[1] = new Array("inhalte02"); // contentList[1] = ["inhalte02"];  
contentList[2] = new Array("inhalte03"); // contentList[2] = ["inhalte03"];

oder auch:

contentList.push(new Array("inhalte01")) // contentList.push(["inhalte01"]);  
contentList.push(new Array("inhalte02")) // contentList.push(["inhalte02"]);  
contentList.push(new Array("inhalte03")) // contentList.push(["inhalte03"]);

in der literalnotation saehe eine initialisierung auf einen ritt
so aus:

var contentList = [  
 ["inhalte01"/*, ..., ..., "damit es"*/],  
 ["inhalte02"/*, ..., ..., "ein bischen"*/],  
 ["inhalte03"/*, ..., ..., "voller wird"*/]  
];

wie von Dir gewuenscht, enthaelt die auf klick aufgerufene funktion
in ihrem funktionsargument den index des zu bearbeitenden (sub)arrays;
falls Du nicht bei »0«, sondern mit »1« zu zaehlen beginnst musst Du
diese verschiebung beruecksichtigen.

zweitens)

Du behaelst das von Dir im bsp. vorgegebene namensschema bei -

temp_arr = arr_"1"             funktioniert z.B. nicht

richtig - das erreichst Du bei einem von mir angenommenen globalen
scope ueber:

var arr = window["arr_" + idx];

wobei »idx« das von Dir zu uebermittelnde funktionsargument darstellt.

drittens)

Du behaelst das von Dir im bsp. vorgegebene namensschema bei und
uebermittelst nicht den zahlenwert, sondern gleich die (objekt-)
referenz auf das von Dir bzw. dem programm zur bearbeitung
vorgesehene array - wahrscheinlich arbeitest Du mit einem onclick-
handler als inline-code ...

... aus:

<elm onclick="tuDiesemArrayIrgendwasAn(1)" />

... wuerde dann:

<elm onclick="tuDiesemArrayIrgendwasAn(arr_1)" />

so long - peterS. - pseliger@gmx.net

--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]