• User Newbie

    javascript: onclick rendere alcuni elementi della pagina invisibili

    Ciao ragazzi sto costruendo a mano delle select dinamiche per cui

    [PHP]
    <script type="text/javascript" language="javascript">
    function changeprovince<?php echo $row_regioni['codice']; ?>() {
    document.getElementById("province<?php echo $row_regioni['codice']; ?>").style.display="block";
    }
    </script>
    [/PHP]

    Con questo script regolarmente al click su una regione viene visualizzata la select successiva che visualizza le province ma la vecchia select resta.
    Come posso fare per far scomparire le vecchie select ad ogni click?

    Avevo provato dando una classe a tutte le select provincia e scrivendo:
    [PHP]
    <script type="text/javascript" language="javascript">
    function changeprovince<?php echo $row_regioni['codice']; ?>() {
    document.getElementByClass("provincia").style.display="none";
    document.getElementById("province<?php echo $row_regioni['codice']; ?>").style.display="block";
    }
    </script>
    [/PHP]

    ma firebug mi dice che document.getElementByClass("provincia") non è valido.

    Qualche consiglio?


  • User Attivo

    Ciao Winbid e benvenuto sul forumGT!

    GetElementByClass, restituisce un array, quindi tu devi fare un ciclo, ed ad ogni elemento del'array, aplicare lo style "display" a "none"!


  • User Newbie

    @Digital Daigor said:

    GetElementByClass, restituisce un array, quindi tu devi fare un ciclo, ed ad ogni elemento del'array, aplicare lo style "display" a "none"!

    Siccome già nella pagina ci sono molte query, e query iterate dentro query volevo evitare di fare un ciclo anche per il javascript...non c'è un modo per dare l'invisibilità a tutte le select tranne quella che deve essere visualizzata?


  • User Attivo

    Mi sono appena ricordato di un metodo che modifica direttamente il CSS...

    
    var strCSS = 'cssRules';
    if(document.all) 
    {
        strCSS = 'rules';
    }
    
    //il 2° indice di array, indica l'elemento in ordine di posizione nel CSS
    //Quindi 0 equivale al 1°, 1 al 2° ecc...
    document.styleSheets[0][strCSS][0].style['display'] = 'none';
    
    
    ```Prova e fammi sapere...