Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    acquisire il contenuto di una cella cliccata

    ciao a tutti.
    E' la prima volta che posto in questo forum.
    Premetto che la mia conoscenza di javascript è un po' lacunosa.

    Allora, ho trovato questo bello script: tableruler

    Data una qualsiasi tabella, scorrendo col mouse le righe queste ultime vengono evidenziate (cambia il colore di sfondo al rollover).

    Vorrei implementare lo script con la gestione dell'evento onClick, come indicato qui sotto (in rosso il punto dove dovrei intervenire).
    codice:
    /*
        tableruler()
        written by Chris Heilmann for alistapart.
        enables a rollover of rows for each table with the classname "hlrows"
    */
    
    function tableruler()
    {
    if (document.getElementById && document.createTextNode)
    {
        var tables=document.getElementsByTagName('table');
        for (var i=0;i<tables.length;i++)
        {
    	if(tables[i].className=='ruler')
    	{
    	    var trs=tables[i].getElementsByTagName('tr');
    	    for(var j=0;j<trs.length;j++)
    	    {
    		if(trs[j].parentNode.nodeName=='TBODY')
    		{
    		    trs[j].onmouseover=function(){this.className='ruled';return false}
    		    trs[j].onmouseout=function(){this.className='';return false}
    
    		    trs[j].onmousedown=function()
    			{
    			// qui vorrei acquisire il numero della riga cliccata
    			// ed il contenuto delle celle
    			// non conosco metodi e proprietà
    			//
    			// ho fatto vari tentativi ma senza successo
    			//
    			return false;
    			}
    		
    		}
    	    }
    	}
        }
    }
    }
    Grazie a tutti quelli che vorranno aiutarmi!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    cosi hai provato?
    codice:
    trs[j].onmouseonclik=function(){this.className='Nome_Class';return false;}
    Se cosi non funziona posta tutta la pagina o il link (cosi salvo in locale e provo)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    innanzitutto grazie per la sollecita risposta.

    Nel mio post avevo messo in link alla pagina dalla quale ho ricavato lo script.
    In questa pagina c'è anche l'esempio. Ti riporto, per comodità anche questo link:
    http://www.alistapart.com/d/tableruler/tableruler.html

    Facendo riferimento proprio all'esempio dell'autore, quello che vorrei ricavare, al click, è il numero della riga cliccata, ed il contenuto delle varie celle.
    Nell'immagine di esempio che allego, la riga cliccata è la quarta, quindi vorrei un metodo che mi restituisse il numero (3 o 4, a seconda che la numerazione parta da 0 o da 1) e
    Kraftwerk e Die Mensch-Maschine che è il contenuto delle due celle della riga cliccata.


    OOOPPSS! ho dimenticato l'allegato

  4. #4
    ecco l'immagine del post precedente...
    Immagini allegate Immagini allegate

  5. #5
    Codice PHP:
    function tableruler(){
        if (
    document.getElementById && document.createTextNode){
               var 
    tables=document.getElementsByTagName('table');
              for (var 
    i=0;i<tables.length;i++){
                if(
    tables[i].className=='ruler'){
                     var 
    trs=tables[i].getElementsByTagName('tr');
                    for(var 
    j=0;j<trs.length;j++){
                          if(
    trs[j].parentNode.nodeName=='TBODY' && trs[j].parentNode.nodeName!='TFOOT')
                           {
                               
    trs[j].onmouseover=function(){this.className='ruled';return false}
                               
    trs[j].onmouseout=function(){this.className='';return false}
                            
    trs[j].onclick=function(){
                                var 
    _childsthis.getElementsByTagName('td');
                                for (var 
    k=0;k_childs.length;k++){
                                    
    alert(_childs.item(k).firstChild.nodeValue);
                                }
                            }
                         }
                    }
                   }
              }
         }

    Alla spicciolata


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  6. #6
    Per l'index ma non so quanto possa
    essere cross-browser

    Codice PHP:
    trs[j].onclick=function(){
                                
    alert(this.rowIndex);
                                var 
    _childsthis.getElementsByTagName('td'); 
                                for (var 
    k=0;k_childs.length;k++){ 
                                    
    alert(_childs.item(k).firstChild.nodeValue); 
                                } 
                                return 
    false;
                            } 
                         } 

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  7. #7
    Codice PHP:
    function tableruler()
    {
        if (
    document.getElementById && document.createTextNode)
        {
        var 
    tables=document.getElementsByTagName('table');
        for (var 
    i=0;i<tables.length;i++)
        {
            if(
    tables[i].className=='ruler')
            {
                var 
    trs=tables[i].getElementsByTagName('tr');
                for(var 
    j=0;j<trs.length;j++)
                {
                    if(
    trs[j].parentNode.nodeName=='TBODY')
                    {
                        
    trs[j].onmouseover=function(){this.className='ruled';return false}
                        
    trs[j].onmouseout=function(){this.className='';return false}
                        
    trs[j].onclick=function()
                            {
                            var 
    messaggio "celle trovate nella riga... ";

                            var 
    tdsthis.getElementsByTagName('td');
                            
    messaggio += "\n num.tag ="+tds.length+"\n";

                            for(var 
    y=0;y<tds.length;y++) 
                                {
                                var 
    valcell=tds[y].firstChild
                                for (var 
    prop in valcell)
                                    {
                                    if (
    prop == "nodeValue") {
                                        
    messaggio+="\n num.cella: "+y;
                                        
    messaggio += "\n >>> proprietà."+prop+" = "+valcell[prop];
                                        }
                                    }

                                
    messaggio+="\n ----------------------------------";
                                }
                            
    window.alert(messaggio);
                            
    location.href=destinazione;
                            return 
    false;
                            }
                            
                    }
                }
            }
        }
        }

    Ho risolto in questo modo...
    Funziona con IE 6.0 e FireFox 2.0

    Grazie a tutti per la collaborazione.

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.