Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525

    Error: document.getElementById(IDtabella) has no properties

    Ho una tabella così definita:
    <table border="1" width="100%"
    class="righealterne" id="tabella1">

    All'evento onload applico l'effetto delle righe alterne, e funziona.
    Però se applico l'effetto righello(al passaggio del mouse si colora la riga e al clik c'è il link) dà l'errore
    Error: document.getElementById(IDtabella) has no properties

    nella prima linea di codice della funzione...perchèèèè????
    Thxxxx

    <script>
    onload=Righello("tabella1")

    function ColoraRighe(){
    var tabelle=document.getElementsByTagName("table");
    alert("tabelle= " + tabelle);
    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";
    }
    }
    }

    function Righello(IDtabella){
    trs=document.getElementById(IDtabella).tBodies[0].rows;
    /* trs=document.getElementsByTagName("table").tBodies[0].rows; */

    for(i=0;i<trs.length;i++){
    tds=trs[i].cells;
    trs[i].link=tds[tds.length-1].getElementsByTagName("a")[0].href;
    trs[i].title= "Visita " + trs[i].link;
    trs[i].style.cursor="pointer";
    trs[i].onclick=function(){document.location.href=this.li nk};
    trs[i].onmouseover = function(){this.className="corrente"};
    trs[i].onmouseout = function(){this.className=""};
    }
    }
    </script>

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525

    ops

    Dimenticavo, ecco le classi css

    table.righealterne tr.alterna td{
    background-color: #ffc
    }
    #tabella1 tr.corrente td{
    background-color: #fcf;border-color:#fcf
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non passi il parametro della tabella.

    Infatti la sintassi
    document.onload=Righello;
    (scritta cosi`, non come la ha messa tu) applicata in uno script non suporta il passaggio di parametri.

    Se vuoi passare parametri devi inserire l'onload nel tag <body>, altrimenti puoi non passare parametri (e scriverli direttamente nella funzione).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    525
    Trovato!
    trs[i].link=tds[tds.length-1].getElementsByTagName("a")[0].href;

    In questo modo si prende il link dall'ultima colonna della riga
    Io però il link ce l'ho nella prima colonna...come cambio quest'istruzione??

    Ho provato con
    trs[i].link=tds[0].getElementsByTagName("a")[0].href;
    ma nn è la sintassi giusta

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non ti seguo.
    Non capisco a che serve quell'istruzione.

    Comunque l'errore che segnalavi non dipende da quello, e` piu` facile che dipenda da quanto dicevo prima.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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 © 2024 vBulletin Solutions, Inc. All rights reserved.