Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    mostra-nascondi con più div

    ciao a tutti, ho nel mio sito più div con lo stesso nome, esempio:
    codice:
    <div id="elimina"></div>
    <div id="condividi"></div>
    <div id="elimina"></div>
    <div id="elimina"></div>
    <div id="condividi"></div>
    vorrei realizzare due link:
    - uno che quando lo clicco mostri gli "elimina" e nasconda i "condividi"
    - uno che quando lo clicco mostri i "condividi" e nasconda gli "elimina"

    qualcuno mi sa aiutare?!
    grazie in anticipo

  2. #2
    Ciao,
    una regola dell'html è che l'id deve essere univoco, altrimenti rischi che qualche browser non interpreti correttamente la pagina e inoltre non ti verrà mai validata dal W3C.

    Una cosa che puoi fare è di creare un array con tutti gli oggetti tag aventi un certo nome utilizzando la document.getElementsByTagName e poi esaminare con un ciclo questo array e impostare la proprietà display di ciascuno al valore "none" oppure "block".
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    grazie mille, ma non sono molto pratico di javascript...
    puoi linkarmi uno script che mi possa tornar utile?

    grazie mille

  4. #4
    Prova questo:

    codice:
    <html>
    <head>
    <style>
       .nascosto {display:none;}
       .visibile {display:block;}
    </style>
    
    <script type="text/javascript">
       function mostra_elimina() {
          arr = document.getElementsByTagName('div');
          for(i=0; i<arr.length; i++){
             if(arr[i].name=='elimina'){
                arr[i].className = "visibile";
             }
             if(arr[i].name=='condividi'){
                arr[i].className = "nascosto";
             }
          }
       }
    
       function mostra_condividi() {
          arr = document.getElementsByTagName('div');
          for(i=0; i<arr.length; i++){
             if(arr[i].name=='elimina'){
                arr[i].className = "nascosto";
             }
             if(arr[i].name=='condividi'){
                arr[i].className = "visibile";
             }
          }
       }
    
       function mostra_tutto() {
          arr = document.getElementsByTagName('div');
          for(i=0; i<arr.length; i++){
             if(arr[i].name=='elimina' || arr[i].name=='condividi'){
                arr[i].className = "visibile";
             }
          }
       }
    
       function nascondi_tutto() {
          arr = document.getElementsByTagName('div');
          for(i=0; i<arr.length; i++){
             if(arr[i].name=='elimina' || arr[i].name=='condividi'){
                arr[i].className = "nascosto";
             }
          }
       }
    
    </script>
    </head>
    
    <body>
    
    <div name="elimina" class="nascosto">questo è dentro elimina</div>
    <div name="condividi" class="visibile">questo è dentro condividi</div>
    <div name="elimina" class="nascosto">questo è dentro elimina</div>
    <div name="elimina" class="nascosto">questo è dentro elimina</div>
    <div name="condividi" class="visibile">questo è dentro condividi</div>
    
    <input type="button" onclick="mostra_elimina()" value="mostra elimina">
    <input type="button" onclick="mostra_condividi()" value="mostra condividi">
    <input type="button" onclick="mostra_tutto()" value="mostra tutto">
    <input type="button" onclick="nascondi_tutto()" value="nascondi tutto">
    
    </body>
    </html>
    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  5. #5
    <script>

    function foo(cosafare) {
    var d=document.getElementById('contenitore');
    if(d){
    var s=d.childNodes;
    for(var i=0; i<s.length; i++){
    if(s[i].nodeType==1){s[i].style.display=( (cosafare && s[i].className=='nascosto') || (!cosafare && s[i].className=='visibile'))?'none':'block';};
    }
    };
    }

    </script>


    <div id="contenitore" style="margin:10px;">
    <div name="elimina" class="nascosto">questo è dentro elimina</div>
    <div name="condividi" class="visibile">questo è dentro condividi</div>
    <div name="elimina" class="nascosto">questo è dentro elimina</div>
    <div name="elimina" class="nascosto">questo è dentro elimina</div>
    <div name="condividi" class="visibile">questo è dentro condividi</div>
    </div>

    mostra elimina

    mostra condividi

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.