Newsgroup: it.comp.lang.javascript
Titolo: un parametro per getElement...

Saluti a tutto il NG
Ho una funzione del tipo
function funzione(obj)
 {document.getElementById("obj").proprietà=...
  altre dichiarazioni
  }
quando la chiamo passandogli come parametro l'id di un oggetto però mi dice
"id" non è definito...(un cane che si morde la coda)
ho provato ache a forzare a stringa il parametro obj con
var name=String(obj) e getElementById("name")
e anche a forzare la valutazione del parametro  obj con Eval (non mi
sembrava avesse molto senso però..)
P.S
Sul manuale che sto usando (danny goodman McGraw-Hill) questo metodo è
indicato come supportato a partire da NN6 e IE5:
per accedere agli oggetti elemento su versioni precedenti quali metodi si
possono usare?
(gli array di elementi? tipo document.images[0] e simili ? )
thx yanez

 (gli array di elementi? tipo document.images[0] e simili ? )
Per ie4 (e superiori per compatibilita' all'indietro) -->
document.all["idOggetto"]
Per ns4 --> document.layers["nomeLayer"]
Occhio soprattutto a ns4. Perche' la sintassi funzioni gli devi passare il
nome di un layer.
I layer sono creati *solo* dall'omonimo tag o da div o span con posizione
assoluta.
Altresi' scordati di usare le stesse proprieta' che useresti con browser
recenti. Ad esempio per scriverci dentro:
document.layers["tuoLayer"].document.open("text/html");
document.layers["tuoLayer"].document.write("tuo testo");
document.layers["tuoLayer"].document.close();
Come hai appena visto ogni layer contiene un document a se' stante e non e'
direttamente accessibile. Per esempio in caso di annidamenti:
document.layers["nomeLayerGenitore"].document.layers["nomeLayerFiglio"]

 della variabile obj: document.getElementById(obj)
Mi sembrava di aver capito che questo metodo volesse proprio una stringa
come parametro, che poi confronta con le stringhe della proprietą id dei
vari elementi..finche non trova quello corrispondente che viene
restituito...
Che soluzioni sono possibili?
Quella funzione la chiamo  4 volte su 4 elementi -ggetto e mi sembrava
carino non dover scrivere uno script per ogni id
grazie comunque
yanez

 restituito...
su come in realta' il metodo getElementById trovi l'oggetto richiesto, 
nulla e' dato sapere (e in effetti ai fini di JavaScript non importa, basta 
che lo ritrovi, non credi?). Piuttosto, per il tuo codice:
function myfun(obj)
{
        document.getElementById("obj").proprieta = valore;
}
cosi' come l'hai scritta, la funzione myfun chiama l'oggetto DI ID "obj". 
Invece tu devi fare in modo che chiami l'oggetto DI ID CONTENUTO NEL 
PARAMETRO obj:
function myfun(obj)
{
        document.getElementById(obj).proprieta = valore;
}
cosi' quando chiami myfun('pluto') e myfun('paperino') la funzione fara' 
riferimento nel primo caso all'oggetto di ID "pluto" e nel secondo caso 
"paperino".
ti consiglio una ricerca su: variabili, parametri formali e attuali
-- 
artemis.alpeia

 ti consiglio una ricerca su: variabili, parametri formali e attuali
in effetti è proprio su questo argomento che ho trovato pochi riferimenti
specifici per il javascript e ho seguito gli esempi...
Grazie

 specifici per il javascript e ho seguito gli esempi...
in effetti ci si avvicina al js con poco rigore formale, e il linguaggio e'
progettato appositamente per essere versatile (assenza di tipizzazione
ecc.). Cio' non toglie che come ogni linguaggio di programmazione, abbia una
sintassi e richieda una certa preparazione teorica. A questo scopo, nulla di
meglio di un buon manuale cartaceo (ad es. il Flanagan)
--
artemis.alpeia
http://spazioinwind.libero.it/artemis