Visualizzazione dei risultati da 1 a 5 su 5

Discussione: errore onload

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    274

    errore onload

    Salve ho questo codice
    codice:
    <script type="text/javascript">
    onload=ColoraRighe;
    function ColoraRighe(){
    var tabelle=document.getElementsByTagName("table");
    for(i=0;i<tabelle.length;i++){
    if(tabelle[i].className.indexOf("righealterne")>=0){
    trs=tabelle[i].tBodies[0].rows;
    for(j=1;j<trs.length;j+=2)
    trs[j].className="alterna";
    }
    }
    }
    </script>
    pero la pagina mi mostra la scritta:

    onload=ColoraRighe;

    soluzione?

  2. #2
    non ho testato affatto ma a prima vista c'è già una cosa: la invocazione o assegnazione di una funzione ad un evento è sempre meglio farla dopo che la signature della funzione è caricata in memoria - cioè: intanto inizia a spostare
    onload=ColoraRighe;
    dopo la funzione e non prima

    Poi:
    document.getElementsByTagName("table");
    ti sembrerà una cosa da poco e incredibile, ma table va maiuscolo! Sul serio:
    document.getElementsByTagName("TABLE");
    O meglio, alcuni browser ti possono fare dei brutti capricci per questo.

    quanto poi alla esistenzxa nell' html degli elementi invocati, questa è altra cosa e l'html noi non lo conosciamo - immagino l' html vada bene.

    ps:
    Quanto alla espressione
    tBodies
    non la ho mai sentita - mi documenterò ma il fatto che non la abbia mai sentita è insolito: probabilmente è una caratteristica specifica di browser o qualche cosa legato al DOM che in pochi usano; io avrei usato, semmai:
    document.getElementsByTagName("TD");
    però se a te questo tBodies funziona, liberissimo di usarlo ovviamente!

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    274
    il codic eintero è questo
    [code]
    <html>

    <head>
    <style type="text/css">
    {table.righealterne tr.alterna td{background-color: #3366CC;}
    </style>
    <script type="text/javascript">
    onload=ColoraRighe;
    function ColoraRighe(){
    var tabelle=document.getElementsByTagName("table");
    for(i=0;i<tabelle.length;i++){
    if(tabelle[i].className.indexOf("righealterne")>=0){
    trs=tabelle[i].tBodies[0].rows;
    for(j=1;j<trs.length;j+=2)
    trs[j].className="alterna";
    }
    }
    }
    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>riga 1 cella 1</title>
    </head>

    <body>
    <table class="righealterne" border="1">
    <tbody>
    <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td>riga 1 cella 1</td>
    <td>riga 1 cella 2</td>
    <td>riga 1 cella 3</td>
    <td>riga 1 cella 4</td>
    <td>riga 1 cella 5</td>
    </tr>
    ........
    </tbody>
    </table>
    [code]

    preso da una guida qui su html, ma non funziona..
    http://javascript.html.it/articoli/l...ori-alternati/

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    C'e' una parentesi graffa aperta in piu' nel CSS
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    274
    verissimo.

    esattamente quella prima di table.righealterne

    grazie mille!

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.