Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370

    tentando di capire il dom...

    sono arrivato a questo problema
    codice:
    <html>
    	<head>
    		<title></title>
    	</head>
    	<body>
    		<div id="prova">
    			<div class="tab">
    				<h2>Titolo tab 1</h2>
    				
    
    1testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo</p>
    			</div>
    			<div class="tab">
    				<h2>Titolo tab 2</h2>
    				
    
    2testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo</p>
    			</div>
    			<div class="tab">
    				<h2>Titolo tab 3</h2>
    				
    
    3testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo</p>
    			</div>
    			<div class="tab">
    				<h2>Titolo tab 4</h2>
    				
    
    4testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo</p>
    			</div>
    		</div>
    
    
    		<script type="text/javascript">
    
    		var tabs = document.getElementsByTagName("div");
    		for (i = 0; i <= tabs.length; i++)
    		{
    			if (tabs[i].className == "tab")
    			{
    				tabs[i].style.border = "1px red solid";
    				tabs[i].firstChild.style.border = "1px blue solid";
    			}
    		}
    
    		</script>
    	</body>
    </html>
    questo non va:
    tabs[i].firstChild.style.border = "1px blue solid";

    su mozilla
    su ie invece funziona

    cosa sbaglio?
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  2. #2
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    nessuno?
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  3. #3
    Ma scusa, già che stai usando className, usalo anche per attribuire gli stili, no?

    Guarda se questo può esserti utile:

    - http://icant.co.uk/articles/from-dht...scripting.html

    Sto approfondendo anch'io questo argomento e devo dire che è molto interessante. Le tecniche per mantenere separati gli script dal markup sono davvero geniali e vale sicuramente la pena approfondirle.

  4. #4
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    Originariamente inviato da pierofix
    Ma scusa, già che stai usando className, usalo anche per attribuire gli stili, no?
    sì, la prova di style era solo per vedere se accedevo all'oggetto

    cmq sono d'accordo, utilissimo
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  5. #5

  6. #6
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    Originariamente inviato da pierofix
    Quindi qual è il tuo problema, scusa?
    che non funziona firstChild

    non riesco ad accedere al nodo (gli H2) per modificarne lo stile -per esempio- o per farci qualsiasi altra cosa
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  7. #7
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    prova così
    tabs[i].getElementsByTagName('h2')[0].style.border = "1px blue solid";
    (il ciclo deve essere var i=0; i<tabs.length)

  8. #8
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    Originariamente inviato da floyd
    prova così
    tabs[i].getElementsByTagName('h2')[0].style.border = "1px blue solid";
    (il ciclo deve essere var i=0; i<tabs.length)
    funziona, ma il problema è che potrebbe esserci h2 come titolo così come h3 h4 ecc
    possibile che non c'è modo di far andare first child? (ho corretto il ciclo)
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  9. #9
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    poi non va neanche nodeValue
    perchè devo usare per forza innerHTML?
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  10. #10
    Hai provato con il metodo di attrubuzione delle classi? Nel CSS fai:

    codice:
    .nomechevuoi
    {
       border:1px solid blue;
    }
    e nel java&#115;cript:

    codice:
    tabs[ i].firstChild.className = 'nomechevuoi'
    Ah, non so se può essere dovuto a quello l'errore, ma lo standard dice che l'ordine dei valori della proprietà 'border' è

    codice:
    [dimensione] [stile-linea] [colore]
    e non

    codice:
    [dimensione] [colore] [stile-linea]
    - http://www.w3.org/TR/CSS21/box.html#...and-properties

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.