Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    185

    Variabili Globali: stamparne il nome

    Ho un file html che, tra i tag <head> fa riferimento ad un file dati.js dove c'è un lungo elenco di quelle che dovrebbero essere variabili globali visto che il file è così strutturato:

    xyz11 = "primo nome"
    xyz2 = "secondonome"
    xyz131 = "terzo nome"
    ...

    Ora se dal file in qualsiasi momento richiamo una di quelle variabili tipo

    document.write(xyz11)

    ottengo come risultato il VALORE della variabile: "primo nome"

    Bene, ma come posso fare per avere, invece del valore, il NOME della variabile? (nel mio caso avrei bisogno di stampare "xyz11").

  2. #2
    Potresti fare un for-in sull'oggetto window, ma non ti conviene molto.
    Dovresti creare un oggetto e assegnare a questo varie proprietà.
    codice:
    var data = {
      'xyz11': "primo nome",
      'xyz2': "secondonome",
      'xyz131': "terzo nome"
    }
    Dopo di questo basta un banale for in per avere i nomi delle proprietà, più propriamente le chiavi:
    codice:
    for(var i in data) {
      alert(i+":"+data[i]);
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    185
    Grazie per la risposta...

    purtroppo questo
    codice:
    var data = {
      'xyz11': "primo nome",
      'xyz2': "secondonome",
      'xyz131': "terzo nome"
    }
    non lo posso fare. Le variabili sono centinaia e mi arrivano da un file (dati.js) che cambia spesso.

  4. #4
    Se i nomi delle variabili iniziano sempre in un modo, in questo caso con 'xyz', potresti benissimo fare così:
    codice:
    for(var i in window) {
      if(i.indexOf("xyz") == 0) {
        alert(i+":"+window[i]);
      }
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    185
    Originariamente inviato da Mega69
    Se i nomi delle variabili iniziano sempre in un modo, in questo caso con 'xyz', potresti benissimo fare così:
    codice:
    for(var i in window) {
      if(i.indexOf("xyz") == 0) {
        alert(i+":"+window[i]);
      }
    }
    Aspetta... che non ho capito benissimo...
    cos'è che farebbe di preciso questo ciclo?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.