Entra

View Full Version : [javascript] problema tabella


Re_Kotc
03-03-2010, 22:30
ciao a tutti, ho un problemino..sto cercando di navigare una semplice tabella tramite js..ma c'è sempre qualcosa che ad explorerer non va giù..sapete darmi un semplicissimo script?

la tabella è del tipo:

<table id="tabella1" name="tabella1" border ="1" cellspacing="2" cellpadding="2">

<tr id="0">
<td id="cella0">"valore"</td>\n\t\t".
...

</tr>

...
</table>



a me servirebbero i valori dei vari td..con i metodi del DOM (almeno per come ho capito io) funziona solo su opera e firefox..suggerimenti?:)

Re_Kotc
03-03-2010, 23:13
sigh...ho trovato una soluzione per opera+ie, ma su firefox fa qualcosa che non so spiegarmi:


//trovo la riga tr che mi serve
var riga = document.getElementById(id_riga);

//trovo la cella td che mi interessa all'interno della riga
primary_key = riga.childNodes[primary_key_position].childNodes[0].nodeValue;



il problema e'...che non funziona se lo faccio con firefox!..nel senso che mi trova il nodeValue di un'altra cella all'interno della stessa riga..e non di quella indicata da "primary_key_position"...come dovrei fare?..non capisco perchè abbia questo comportamento

kk3z
04-03-2010, 10:49
Prova con:
riga.cells[ indice_cella ].innerHTML;

Firefox (opera, safari e tutti i browser che rispettano il dom) include come nodo anche il testo (anche gli spazi fra diversi tag). Per esempio, molto probabilmente riga.childNodes[0] è un textNode.

Se vuoi evitare questi problemi puoi usare librerie come jquery:
//trovo la cella td che mi interessa all'interno della riga
primary_key = $("#"+id_riga).children().eq(primary_key_position).children(":first").html();

.con i metodi del DOM (almeno per come ho capito io) funziona solo su opera e firefox
Non è vero :)

Re_Kotc
04-03-2010, 11:29
hai ragione!! :)...avevo trovato qualcosa di simile girando per i forum..anche gli spazi vuoti erano visti come childnodes..ora ho risolto! funziona tranquillamente..per jquery..quando avrò tempo lo imparerò..grazie mille!!

riguardo a :
.con i metodi del DOM (almeno per come ho capito io) funziona solo su opera e firefox

intendevo che per come lo avevo scritto io all'inizio (male :D) funzionava solo su opera e firefox, ma non perchè ie non supportasse il DOM ma perchè avevo fatto qualche schifezza :P ciao!