guarda non ti sto esprimendo un mio parere personale: ti sto dicendo come stanno le cose.
Apparentemente hai creato una tua procedura per verificare come prelevare un getElementById, e capisco che se sei alle prime armi la cosa ti abbia dato soddisfazione. Ma bisogna che decidi se sei qui per esibire un prodotto o per migliorarlo. Se lo vuoi migliorare, i "miei" consigli sono validi, perchè non sono appunto "miei" ma esprimono la funzionalità di javascript.
Te lo dimostro: con il tuo codice non funziona:
codice:
<div id="miodiv" style="border:#000000 1px solid; padding:10px;">ciao</div>
<script>
function foo(id){
var doc;
if (document.all) doc= document.all;
if (document.layers) doc= document.layers;
if (document.getElementById) doc= document.getElementById;
doc= id; //in questo caso id sarebbe il nome dell'ID, ma senza le virgolette, dichiarato come variabile.
//es. a seguire di una chiamata
doc.innerHTML= "etc.etc.";
}
foo('miodiv');
</script>
Questo invece funziona, e non è una opinione:
codice:
<div id="miodiv" style="border:#000000 1px solid; padding:10px;">ciao</div>
<script>
function foo(id){
document.getElementById(id).innerHTML= "etc.etc.";
}
foo('miodiv');
</script>
Quello che ti sto dicendo è che se proprio vuoi usare la tua procedura (che non funziona) quello che stai facendo è di creare un puntatore ad una funzione nativa di javascript:
codice:
<div id="miodiv" style="border:#000000 1px solid; padding:10px;">ciao</div>
<script>
function foo(id){
var doc=document.getElementById;
alert(doc);//è un puntatore e l'alert lo dimostra
}
foo('miodiv');
</script>
da quel momento in poi, la tua procedura avrebbe un senso se tu usassi quel puntatore come funzione, anche se javascript può rifiutare la assegnazione della funzionalità ad un puntatore su un metodo nativo del DOM - cioè avrebbe un senso se poi piuttosto che tentare
doc.innerHTML
che sicuramente è privo di significato, tu avessi tentato
doc(id).innerHTML
che non ti funziona uguale, ma almeno sarebbe stato concettualmente più corretto.
Oppure, invochi il metodo completo (cioè crei un puntatore ad un oggetto dom, ma non ad un metodo):
codice:
<div id="miodiv" style="border:#000000 1px solid; padding:10px;">ciao</div>
<script>
function foo(id){
var doc=document.getElementById(id);
doc.innerHTML='etc. etc.';
}
foo('miodiv');
</script>
In altre parole, ricadi nel mio consiglio originario: usa
document.getElementById(idqui)
oppure aggiungi le parentesi - ma lascia stare il resto cioè cose come
doc=document.getElementById (layers/all o quel che sia)
e cose come
doc=id