allora andava bene il primo script.
Per fare funzionare il primo script ho adattato la parte html, aggiungendo l'attributo id, cosa che andrebbe fatta sempre. L'assegnazione dell'id è stata fatta proprio per soddisfare la tua esigenza, che al click di un button su una riga venisse preso il dato della stessa riga riga, se aumentano i dati alla riga cambia poco ad ogni elemento della riga i-esima aggiungi all'id il suffisso _i, e provvedi anche a dare lo stesso prefisso agli id per colonna (magari l'intestazione della colonna stessa).
Es.
Parte html con le opportune modifiche, almeno spero che sia così visto che non vuoi fornire la parte html generata
codice:
<tr>
<td><input type='text' id='codice_1' value='1' /></td>
<td><input type='text' id='cognome_1' value='pippo' /></td>
<td><input type='text' id='valore_1' value='5' /></td>
<td><button id='button1' onclick ='invia(this)'>Invia</button></td>
</tr>
Parte javascript
codice:
function invia(el){
id = el.id.split("_");
id = id[1];
codice = document.getElementById(codice_'+id).value;
cognome = document.getElementById('cognome_'+id).value;
valore = document.getElementById('valore_'+id).value;
}