HighDots Forums  

AIutatemiii Problema che non riesco a risolvere

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss AIutatemiii Problema che non riesco a risolvere in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
aladinizzato
 
Posts: n/a

Default AIutatemiii Problema che non riesco a risolvere - 10-05-2009 , 01:45 AM






Di seguito riporto il frammento di codice in questione (si tratta di
una piccola animazione che stabiliti giorni ore minuti secondi
mancanti fà il conto alla rovescia):
..............
<script type="text/javascript">
var days = 2
var hours = 18
var minutes = 45
var seconds = 30

function setCountDown ()
{
seconds--;
if (seconds < 0){
minutes--;
seconds = 59
}
if (minutes < 0){
hours--;
minutes = 59
}
if (hours < 0){
days--;
hours = 23
}
document.getElementById("remain").innerHTML = "Mancano "+days+"
giorni, "+hours+" ore, "+minutes+" minuti, "+seconds+" secondi";
setTimeout ( "setCountDown()", 1000 );
}
</script>
</head>

<body onload="setCountDown();">
<div id="container">
<div id="header"><div id="header_left"></div>
<div id="header_right"></div></div>
<div id="content">
<table class="countTable">
<tr>
<td>Scadenza:</td><td></td></tr>
<tr><th colspan="2" id="remain"></th></tr>
..............
<table class="countTable">
<tr>
<td>Scadenza:</td><td></td></tr>
<tr><th colspan="2" id="remain"></th></tr>
.............

qualcuno riesce a capire perchè il primo tag <th colspan="2"
id="remain"></th> mi visualizza l'animazione ma il secondo no?
sapreste darmi una soluzione? AIUTATEMIIIIII

Reply With Quote
  #2  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: AIutatemiii Problema che non riesco a risolvere - 10-05-2009 , 03:41 AM






Il Sun, 04 Oct 2009 22:45:58 -0700, aladinizzato ha scritto:

Quote:
Di seguito riporto il frammento di codice in questione (si tratta di una
piccola animazione che stabiliti giorni ore minuti secondi mancanti fÃ*
il conto alla rovescia): .............

document.getElementById("remain").innerHTML = "Mancano "+days+"
giorni, "+hours+" ore, "+minutes+" minuti, "+seconds+" secondi";
setTimeout ( "setCountDown()", 1000 );

table class="countTable"
tr
td>Scadenza:</td><td></td></tr
tr><th colspan="2" id="remain"></th></tr
............

qualcuno riesce a capire perchè il primo tag <th colspan="2"
id="remain"></th> mi visualizza l'animazione ma il secondo no?
Perché l'attributo ID *DEVE* essere univoco nella pagina ... l'errore è
percui a livello HTML, non javascript. Se metti 2 tag con lo stesso ID,
dato che è appunto un errore, ogni browser si comporta a modo suo: c'è
chi (penso firefox) ti segnala errore, e chi (penso IE) setta solo il
primo.
Chiama il secondo id="remain2" e scrivi anche nel secondo:
document.getElementById("remain").innerHTML = document.getElementById
("remain2").innerHTML = "Mancano "+days+ ...

Reply With Quote
  #3  
Old   
aladinizzato
 
Posts: n/a

Default Re: AIutatemiii Problema che non riesco a risolvere - 10-05-2009 , 05:49 AM



On 5 Ott, 09:41, Cristiano Larghi <c.lar... (AT) criosoftware (DOT) it> wrote:
Quote:
Il Sun, 04 Oct 2009 22:45:58 -0700, aladinizzato ha scritto:

Di seguito riporto il frammento di codice in questione (si tratta di una
piccola animazione che stabiliti giorni ore minuti secondi mancanti fà
il conto alla rovescia): .............
* document.getElementById("remain").innerHTML = "Mancano "+days+"
giorni, "+hours+" ore, "+minutes+" minuti, "+seconds+" secondi";
* setTimeout ( "setCountDown()", 1000 );
*<table class="countTable"
* * * * * *<tr
* * * * *<td>Scadenza:</td><td></td></tr
* * * * * *<tr><th colspan="2" id="remain"></th></tr
............

qualcuno riesce a capire perchè il primo tag <th colspan="2"
id="remain"></th> mi visualizza l'animazione ma il secondo no?

Perché l'attributo ID *DEVE* essere univoco nella pagina ... l'errore è
percui a livello HTML, non javascript. Se metti 2 tag con lo stesso ID,
dato che è appunto un errore, ogni browser si comporta a modo suo: c'è
chi (penso firefox) ti segnala errore, e chi (penso IE) setta solo il
primo.
Chiama il secondo id="remain2" e scrivi anche nel secondo:
*document.getElementById("remain").innerHTML = document.getElementById
("remain2").innerHTML = "Mancano "+days+ ...
Grazie mille :-)

sai se esiste un altro modo a livello HTML per fare la stessa cosa?
perchè se dovessi visualizzare 10 animazioni di quel tipo sarebbe un
pò noioso scrivere il codice in quel modo

Reply With Quote
  #4  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: AIutatemiii Problema che non riesco a risolvere - 10-05-2009 , 07:17 AM



Il Mon, 05 Oct 2009 02:49:31 -0700, aladinizzato ha scritto:

Quote:
sai se esiste un altro modo a livello HTML per fare la stessa cosa?
perchè se dovessi visualizzare 10 animazioni di quel tipo sarebbe un pò
noioso scrivere il codice in quel modo
ci sono varie strade; una sarebbe settare il name e usare
getElementsByName (così recuperi tutti i tag e li setti in un ciclo), ma
il name non è assegnabile a campi di tabelle (dovresti usare dei tag
input text, per esempio).
In generale dovresti identificare un modo univoco per reperire questi
campi (e per capire come occorre conoscere esattamente la struttura della
pagina).
Un esempio: se nella tua pagina va scritto nel primo TH che incontri in
tutte le tabelle della pagina, potresti usare getElementsByTagName per
recuperare tutti i tag table, da lì recuperare la prima TH (sempre con
getElementsByTagName) e scriverci dentro, sempre con un ciclo; un
qualcosa del tipo (prototipo, non testato):
for(var i=0,objs=document.getElementsByTagName("table");i< objs.length;i+
+) {
var myTH=objs[i].getElementsByTagName("th");
if(myTH&myTH.length>0)
myTH[0].innerHTML="tua scritta";
}
https://developer.mozilla.org/en/DOM/element.getElementsByTagName

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.