Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    45

    [Javascript] Inserire Nuova riga in una Tabella

    Ciao a tutti,
    C'è un modo in javascript per aggiungere un <TR> ad una <TABLE> html?
    I BELONG TO JESUS www.evangelici.net

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    devi usare i metodi
    - createElement
    - appendChild

    Qui trovi un esempio...
    www.pixline.net/44
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    si', se approfondisci leggendo lo speciale DOM di pro.html.it ti sara' tutto + chiaro
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>aggiungi tr e relativi td a tabella</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    var num=1;
    function accoda(){
    	if(document.createElement && document.getElementById && document.getElementsByTagName) {
    		// crea elementi
    		var oTr=document.createElement("TR");
    		var oTd1=document.createElement("TD");
    		var oTd2=document.createElement("TD");
    
    		var oText1=document.createTextNode("riga aggiunta numero "+num);
    		var oText2=document.createTextNode("altra cella aggiunta");
    
    		// appendi al relativo padre
    
    		oTd1.appendChild(oText1);
    		oTd2.appendChild(oText2);
    
    		oTr.appendChild(oTd1);
    		oTr.appendChild(oTd2);
    		document.getElementById('tabella').getElementsByTagName('TBODY')[0].appendChild(oTr);
    
    		// incrementa variabile globale
    		num++
    	}
    }
    //-->
    </script>
    </head>
    <body>
    <form name="modulo">
    <input type="button" value="accoda" onclick="accoda()">
    <table border="1" id="tabella">
    <tbody>
    <tr>
    <td>riga gia' presente</td><td>altra cella gia' presente</td>
    </tr>
    </tbody>
    </table>
    </form>
    </body>
    </html>
    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    45
    ho trovato questo LINK ma ho un problema.

    Sono riuscito a creare nuove righe ma poi quando vado a vedere il Source HTML della pagina creata queste righe non esistono!!!


    Metto lo script:


    function prova(){
    tabella = document.getElementById('tabTratt')
    tabellabody = document.createElement("TBODY");
    nuovariga = document.createElement("TR");
    nuovariga.onMouseOver="this.bgColor=over";
    nuovariga.onMouseOut="this.bgColor=out";
    nuovariga.style="cursorointer;";

    nuovacolonna = document.createElement("TD");
    testo = document.createTextNode('aaa');
    nuovacolonna.appendChild(testo);
    nuovariga.appendChild(nuovacolonna);

    nuovacolonna = document.createElement("TD");
    testo = document.createTextNode('aaa2');
    nuovacolonna.appendChild(testo);
    nuovariga.appendChild(nuovacolonna);

    nuovacolonna = document.createElement("TD");
    testo = document.createTextNode('aaa3');
    nuovacolonna.appendChild(testo);
    nuovariga.appendChild(nuovacolonna);

    nuovacolonna = document.createElement("TD");
    testo = document.createTextNode('aaa4');
    nuovacolonna.appendChild(testo);
    nuovariga.appendChild(nuovacolonna);


    tabellabody.appendChild(nuovariga);
    tabella.appendChild(tabellabody);
    }

    <table width="465" border="0" align="center" cellspacing="3" id="tabTratt">
    <tr id="0">
    <td class="bordoDES">Nome farmaco</td>
    <td class="bordoDES">Principio attivo</td>
    <td class="bordoDES">Dosaggio</td>
    <td>Data inizio ass.</td>
    </tr>

    <tr id="1" onMouseOver="this.bgColor=over" onMouseOut="this.bgColor=out" style="cursorointer; ">
    <td class="bordoSUP bordoDES" title="Nome farmaco: Solexa"><input name="nometratt" id="nometratt" type="hidden" value="Solexa" />Solexa</td>
    <td class="bordoSUP bordoDES" title="Principio attivo: ssosososos"><input name="princtratt" id="princtratt" type="hidden" value="ssosososos" />ssosososos</td>
    <td class="bordoSUP bordoDES" title="Dosaggio: 30 mg/dl"><input name="dosetratt" id="dosetratt" type="hidden" value="30 mg/dl" />30 mg/dl</td>
    <td class="bordoSUP" title="Data inizio ass.: 13/01/2005"><input name="datatratt" id="datatratt" type="hidden" value="13/01/2005" />13/01/2005</td>
    </tr>


    </table>
    I BELONG TO JESUS www.evangelici.net

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    è naturale, perchè stai modificando la visualizzazione della pagina e non il sorgente...
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    45
    Riesco però a sapere quante righe ha una tabella?

    tipo tabella.length?
    I BELONG TO JESUS www.evangelici.net

  7. #7
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    si, perchè la lettura di tale dato tiene conto anche delle modifiche che hai fatto a prescindere del cntenuto del file sorgente.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    45
    allora perché se faccio l'alert di tabella.length dopo il getEleme ho come risultato undefined?

    e poi queste tre righe non me le prende

    nuovariga.onMouseOver="this.bgColor=over";
    nuovariga.onMouseOut="this.bgColor=out";
    nuovariga.style="cursorointer;";
    I BELONG TO JESUS www.evangelici.net

  9. #9
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    non puoi calcolare il length così perchè lo stai calcolando sulla tabella: se vuoi sapere il numero di righe credo tu debba fare così:

    document.getElementsByTagName('tr').length;
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  10. #10
    veramente così calcoli tutti i TR presenti nel documento.. secondo me devi prima individuare quale tabella ti interessa (magari assegnandole un ID e richiamandola con getElementById) e poi calcolando - sempre sfruttando il DOM - il numero di figli (in realtà il childNode di una table chredo sia un TBODY, quindi devi calcolare quanti figli 'ha' il suo TBODY) estrapolando la lunghezza dell'array childNodes.

    ma questa è solo la mia opinione..

    Bye..
    MR. PINK
    "Like a Virgin" is all about a girl who digs a guy with a big dick.
    The whole song is a metaphor for big dicks.

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