Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [javascript] nasondere div

    Ciao ho il seguente codice html:
    codice:
    <script type='text/javascript' src='showhide.js'></script>
    
    <div id="0" style="visibility: visible;">
    igene
    
    <div id="1" style="visibility: visible;">
    sessole
    </div>
    
    <div id="1" style="visibility: visible;">
    cat1
    </div>
    
    </div>
    vorrei nascondere tutti i div con id=1, uso lo scrit qui sotto:
    codice:
    function getElement(id_){
    return (typeof document.getElementById != "undefined")?document.getElementById(id_):document.all[id_];
    }
    
    function showHide(id){
    div = getElement(id);
    div.style.visibility = (div.style.visibility=="" || div.style.visibility=="visible")?"hidden":"visible";
    
    }
    ma cliccando su "igene" mi nasconde solo "sessole", c'è un modo per prendere TUTTI i div con id=1 all'interno di javscript?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    l' id deve identificare un elemento nel documento, piu' elementi non possono avere stesso id
    l' id non puo' essere solo numerico

    per cui chiamali id="div0", id="div1" etc
    nella funzione ciclerai per il numero di div da considerare e valuterai se nascondere o meno quell' elemento
    codice:
    function showHide(num){
      var totalDivs=3; // x es, da "div0" a "div2" compresi
      for(var k=0;k<totalDivs;k++){
        var el=getElement('div'+k);
        if(k==num) el.style.display='block';
        else el.style.display='none';
      }
    }
    ciao

  3. #3
    Ho modificato il codice in questo modo
    codice:
    <script type='text/javascript' src='showhide.js'></script>
    
    <div id="div_0_0" style="visibility: visible;">
    igene
    
    <div id="div_1_0" style="visibility: visible;">
    sessole
    </div>
    
    <div id="div_1_1" style="visibility: visible;">
    cat1
    </div>
    
    </div
    e la funzione che mi hai suggerito così:
    codice:
    function showHide(num,totdivs){
    	
    	  var totalDivs=totdivs;
    	  for(var k=0;k<totdivs;k++){
    	    var divName = num + '_' + k;
    	    alert('nascondi ' + divName );
    	    var el=getElement(divName);
    	    if(k==num) el.style.display='block';
    	    else el.style.display='none';
    
    	  }
      }
    ma mi stampa solo un alert('nascondi ' + divName ); e poi più niente...come se il parametro che gli passo non sia valido, ma è presente nel codice html...grazie 1000 per le dritte di prima!
    Edit:
    Ho provato a inserire prima di tutti i div il seguente link
    codice:
    Tutto
    che stampa a video "nascondi div_0_0" ma non succede niente

  4. #4
    mi sono accorto che le righe:
    codice:
    	    if(k==num) el.style.display='block';
    	    else el.style.display='none';
    non funzioneranno mai k non è mai uguale a num, cmq qualsiasi istruzione dopo

    var el=getElement(divName);

    nn viene eseguita...nemmeno un alert...

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ma il motivo per complicarlo cosi' e' perche' hai sotto-menu'?

    qui passi una stringa, togli gli apici
    Tutto

    probabilmente ci sara' altro, ma lo trovo difficile da seguire
    posta l' xhtml completo del menu'

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    specialmente se hai sottomenu', ti raccomando di usare liste annidate

  7. #7
    si o sottomenù, cmq nemmeno questo semplice pezzo di codice nasconde il div...nn lo genero con niente, l ho scritto a mano...nn trovo l'errore

    codice:
    <script type='text/javascript'>
    function showHide(){
    
    div = getElement("div1");
    div.style.visibility = (div.style.visibility=="" || div.style.visibility=="visible")?"hidden":"visible";
    alert('dsaddsa');
    
      }
    </script>
    
    Tutto
    
    <div id="div1" style="visibility: visible;">
    stampa qualcosa
    </div>

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    i link scrivili cosi'
    Tutto

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    manca questa funzione getElement()

  10. #10
    grazie a tutti sono riuscito a nascondere i div che volevo, stavo valutando anche una soluzione con liste annidate, questo è il codice generato dal mio script:
    codice:
    ...
    <ul style=list-style-type: circle;>
    [*]igene
    	<ul style=list-style-type: circle;>
    	[*]sessole
    		<ul style=list-style-type: circle;>
    		[*]blu
    		[/list]
    	
    	[/list]
    [/list]
    ...
    mi chiedevo se fosse possibile nascondere le voci "sessole" e "blu" cliccando su "igene", in pratica come prima con i div...questa soluzione risulta migliore secondo voi?
    Grazie

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.