Io userei jQuery.
Quello che vuoi fare tu, potresti farlo usando in qualche modo eval(), ma in linea di massima è sconsigliato.codice:$('Id').css('backgroundColor','#fff');
Se vuoi richiamare delle proprietà di un oggetto in modo dinamico, puoi usare la sintassi a parentesi quadre. In tal caso dovrai comunque definire singolarmente le varie proprietà. In pratica dovresti definire due variabili, una per "style" e una per "backgroundColor".
Volendo potresti anche utilizzare il sistema di riferimento diretto per selezionare gli elementi del DOM; cioè gli elementi del DOM sono definiti come variabili globali su document e su window. Anziché document.getElementById('Id') potresti scrivere semplicemente Id. Questo sistema ha comunque delle controindicazioni ed è generalmente considerato una cattiva pratica. Esistono poi altri metodi come querySelector() e altri simili. In alternativa potresti però creare una tua funzione con un nome più corto, che "avvolge" il getElementById, in modo da creare un alias di tale metodo; è utile nel caso tu abbia intenzione di utilizzare tale metodo in modo intensivo.
Qui un esempio con riferimento diretto e proprietà richiamate in modo dinamico:
Qui con un alias per getElementById:codice:<!DOCTYPE HTML> <html> <head> <title>Esempio</title> <meta charset="utf-8"> </head> <body> <div id='Id'> ciao </div> <script type="text/javascript"> var css = 'style'; var bgc = 'backgroundColor'; Id[css][bgc] = 'white'; </script> </body> </html>
Ma tutte queste tecniche, se vedi bene, sono già disponibili e funzionanti in modo egregio con librerie tipo jQuery (una tra le più utilizzate). Per tale motivo la mia affermazione iniziale. Se il tuo scopo è quello di sintetizzare al meglio i tuoi script, perché non affidarsi ad una libreria liberamente utilizzabile, testata e ottimizzata per i vari browser, che lo faccia per te?codice:<!DOCTYPE HTML> <html> <head> <title>Esempio</title> <meta charset="utf-8"> </head> <body> <div id='Id'> ciao </div> <script type="text/javascript"> function sel(id) { return document.getElementById(id); } var css = 'style'; var bgc = 'backgroundColor'; sel('Id')[css][bgc] = 'red'; </script> </body> </html>


Rispondi quotando