Newsgroup: it.comp.lang.javascript
Titolo: recuperare tra <DIV> e </DIV>

Ciao a tutti, in una pagina HTML ho una sfilza di elementi raggruppati
in numerose tabelle che ognuna dentro due tag DIV, per esempio:
<DIV CLASS='tooltip' ID='Q1'><TABLE BORDER=0 CELLPADDING=2 CELLSPACING=0
BGCOLOR=#0000ff><TR><TD><TABLE BORDER=0 CELLPADDING=5 CELLSPACING=0
BGCOLOR=#ffffcc><TR><TD><TT>Top scoring peptide matches to query
1<BR>Elution from: 44.66 to 44.66   period: 0   experiment: 1 cycles:  1
<BR>Score greater than 41 indicates identity<BR><I>Status bar shows all
hits for this peptide</I></TT><PRE><B>Score   Delta  Hit  Protein
Peptide</B></PRE></TD></TR></TABLE></TD></TR></TABLE></DIV>
o
<DIV CLASS='tooltip' ID='Q210'><TABLE BORDER=0 CELLPADDING=2
CELLSPACING=0 BGCOLOR=#0000ff><TR><TD><TABLE BORDER=0 CELLPADDING=5
CELLSPACING=0 BGCOLOR=#ffffcc><TR><TD><TT>Top scoring peptide matches to
query 210<BR>Elution from: 24.97 to 24.97   period: 0   experiment: 3
cycles:  1  <BR>Score greater than 17 indicates homology<BR>Score
greater than 29 indicates identity<BR><I>Status bar shows all hits for
this peptide</I></TT><PRE><B>Score   Delta  Hit  Protein Peptide</B><BR>
4.9    0.13        DEAEKL<U>M</U>TYVDTSINIECR<BR>  4.6    0.17
W<U>M</U>VTSWSACTRSCGGGVQTR<BR>  3.8    0.09
AEISRIQYEMEYTEGISQR<BR>  2.1    0.11
<U>M</U>QDFPCEHWTVPAKQTVGR<BR>  1.1   -0.01
TITTTEIMNKPEETAKPKDR<BR>  0.7   -0.18        VVVPALIPGSVTLLLRGGMPASR<BR>
0.3    0.06        LQQLLQR<U>M</U>EQQEMAQQER<BR>  0.3    0.06
LQQLLQRMEQQE<U>M</U>AQQER<BR>  0.1    0.02
AGTLDNISVTLVGTCGESPKQR<BR>  0.0    0.05
NGIMTNPNYHLQSNQVFLGR</PRE></TD></TR></TABLE></TD></TR></TABLE></DIV>
E' possibile, tramite javascript, recuperare in qualche modo
l'informazione che sta in ognuna di queste strutture? Mi viene in mente,
per esempio, che di una form io posso leggere i valori con
form.ELEMENTO.value e gli elementi sono in un array form.elements.
Si puo' fare qualcosa del genere con questi altri valori?
Grazie 
d
-- 
Davide Cittaro
Drop WINDOWS if you want to reply

 in numerose tabelle che ognuna dentro due tag DIV, per esempio:
[CUT]
un qualcosa di veloce puň essere del tipo:
for(int x=0;x<document.getElementsByTagName('div').length;x++)
 alert(document.getElementsByTagName('div')[x].innerHTML);
-- 
"e mai che mi sia venuto in mente
 di essere piů ubriaco di voi
 di essere molto piů ubriaco di voi"
									  F.D.A.

  alert(document.getElementsByTagName('div')[x].innerHTML);
Oooh! ho visto che anche document.getElementById().innerHTML funziona.
Grazie davvero tanto. Ora mi lancio in un'altra domandina: per estrarre
solo una parte di quello che e' HTML dentro la DIV, devo fare una cosa
tipo
var pippo = new String(document.getElementById('Q13').innerHTML) 
e poi cercare nella stringa oppure esistono dei metodi per raccattare il
contenuto tra due tag (che so, nel mio caso tra <PRE> e </PRE>)?
Grazie ancora da un totale niubbio di javascript


 contenuto tra due tag (che so, nel mio caso tra <PRE> e </PRE>)?
"PRE" è null'altro che un elemento HTML, quindi così come puoi ottenere un
riferimento al DIV, puoi fare la stessa cosa anche per il "PRE".
Tu obietterai che il "pre", a differenza del tuo "div", non ha un'ID con il
quale riferirsi. Ma come ti ho detto, vi sono moltissimi modi per
referenziare un elemento HTML, e getElementById() è solo uno di questi.
Ad esempio, prenendo il tuo codice:
<DIV CLASS='tooltip' ID='Q1'><TABLE BORDER=0 CELLPADDING=2 CELLSPACING=0
BGCOLOR=#0000ff><TR><TD><TABLE BORDER=0 CELLPADDING=5 CELLSPACING=0
BGCOLOR=#ffffcc><TR><TD><TT>Top scoring peptide matches to query
1<BR>Elution from: 44.66 to 44.66   period: 0   experiment: 1 cycles:  1
<BR>Score greater than 41 indicates identity<BR><I>Status bar shows all
hits for this peptide</I></TT><PRE><B>Score   Delta  Hit  Protein
Peptide</B></PRE></TD></TR></TABLE></TD></TR></TABLE></DIV>
Puoi benissimo fare:
/* 
	ottengo un riferimento al div che mi interessa
 */
var myDiv=document.getElementById("Q1");
/*
	ottengo array dei riferimenti a tutti i tag pre contenuti in quel div
*/
var listPre=myDiv.getElementsByTagName("pre");
/*
	ottengo un riferimento al primo tag pre della lista
*/
var myPre=listPre[0];
/*
	visualizzo il codice HTML in esso contenuto
*/
alert(myPre);
Il codice è ovviamente a scopo didattico, per mostrarti i vari passi di
come ottenere i riferimenti voluti. All'atto pratico, se a te interessa
ottenere solo l'HTML contenuto in pre, puoi anche fare direttamente:
var
myHTML=document.getElementById("Q1").getElementsByTagName("pre")[0].innerHTML;
Che è l'equivalente del codice mostrato in precedenza, solo che non crei
variabili inutilizzate.
-- 
ZER0
~ The Tangent Universe collapsed 5997 days, 6 hours, 53 minutes and 55 seconds ago.

In data Fri, 1 Apr 2005 13:36:07 +0200, ZER0 ha scritto:
[CUT]
Bella bastardata il server tedesco, né?
Speriamo news fastweb reggano, quando lo avevo provato (un paio d'anni fa?)
vedevo i messaggi 1 giorno sě e 1 no...

 vedevo i messaggi 1 giorno sì e 1 no...
Puoi provare quello che sto usando io, non so ancora se temporaneamente o
meno, me l'hanno consigliato in tanti.
-- 
ZER0
~ The Tangent Universe collapsed 5997 days, 7 hours and 8 minutes ago.

 meno, me l'hanno consigliato in tanti.
Visto. Me lo salvo, per ora provo con fastweb, se mi crea menate lo testo.
Grazie
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 essere d'accordo, ma non puoi troncarmelo in questo modo.
Beh, ma non l'hanno fatto dall'oggi al domani: hanno inviato delle mail di
notifica con un discreto anticipo; inoltre non è stata una scelta dipesa
direttamente da loro. Da quanto ho capito, è venuto a mancare un
finanziamento.
-- 
ZER0
~ The Tangent Universe collapsed 5997 days, 7 hours, 14 minutes and 51 seconds ago.

 notifica con un discreto anticipo; 
:-O
Io stamattina sono caduto dal pero...
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.

 Io stamattina sono caduto dal pero...
Quando ti registri al server, ti richiedono un'indirizzo e-mail.. a
quell'indirizzo mi è arrivata a metà febbraio, la notifica che il news
server non sarebbe più potuto essere gratuito.
-- 
ZER0
~ The Tangent Universe collapsed 5997 days, 7 hours, 27 minutes and 11 seconds ago.

 server non sarebbe più potuto essere gratuito.
Boh...io non ho ricevuto nulla. PeròPerò non vorrei aver dato ai tempi
l'indirizzo dell'ex-lavoro (@
executive.it
)...


 variabili inutilizzate.
Ok, ho capito. Metto in pratica e scopro che ho dei problemi con la tag
<BR> (perche' non ha una chiusura?)... infatti, pur avendo
...<pre>....<b>..</b>....<br>....<br></pre>....
quello che sta tra pre e che e' prima di br non riesco ad averlo con
getElementsByTagName("BR")... 


 l'indirizzo dell'ex-lavoro (@
executive.it
)...
Può essere, mi pare strano che abbiano discriminato solo te, tra tutti gli
utenti del news server. :) 
Lunedì mi informerò presso la mia banca per verificare se vi siano problemi
o meno nel trasferimento di denaro presso la loro (dato che nella
registrazione, loro si raccomandano di farlo..), in caso vada tutto bene
procederò al bonifico.. del resto, anche solo per questi anni che ho usato
il loro server, credo che almeno un anno di pagamento da parte mia gli sia
dovuto..
-- 
ZER0
~ The Tangent Universe collapsed 5997 days, 7 hours, 35 minutes and 30 seconds ago.

 getElementsByTagName("BR")... 
Con getElementsByTagName("BR") ottieni la lista dei BR contenuti
nell'oggetto che richiama tale metodo.
I BR, in quanto tag *vuoti*, non contengono alcun testo. Quindi il tuo è un
problema logico "di fondo": Una volta che hai un oggetto referenziato, nel
caso precedente era "PRE", puoi accedere ai suoi metodi e proprietà.. come
innerHTML che ti mostra il *contenuto* html del nodo.
Se anche prendi un riferimento al nodo BR, essendo questo un nodo *vuoto*,
non hai alcun contenuto da prendere.
Capisci?
-- 
ZER0
~ The Tangent Universe collapsed 5997 days, 7 hours, 40 minutes and 45 seconds ago.

 Capisci?
Si, ora mi sono messo ad usare il DOM inspector di firefox per avere una
lista di tutto quello che posso fare con i javascript per navigare nel
mio documento... accidenti, quanta roba!
In ogni caso credo che prendero' quello che c'e' in PRE come stringa da
analizzare perche' ho scoperto dei casi particolari in cui... bah,
insomma, e' un casino! (purtroppo e' un sw commerciale che mi genera le
pagine, mica posso farlo cambiare cosi'!).
Grazie ancora


 > Bella bastardata il server tedesco, né?
ma mi par di capire che tutti tranne me su Usenet usavano il famoso
server tedesco?! o_O;;
-- 
The grabbing hands grab all they can
All for themselves, after all
Everything counts in large amounts

 getElementsByTagName("BR")... 
hai gia' ottenuto una stringa contenente il codice HTML racchiuso dal
tag PRE con:
myHTML =
document.getElementById("Q1").getElementsByTagName("pre")[0].innerHTML;
ma a questo punto non e' ben chiaro cosa tu voglia ottenere
se vuoi ad esempio eliminare tutti i tag dalla stringa ottenuta, basta
effettuare una sostituzione utilizzando le espressioni regolari
sii piu' chiaro e vedremo di trovare la soluzione :)


 Grazie ancora
de nada.
-- 
ZER0
~ The Tangent Universe collapsed 5997 days, 9 hours, 3 minutes and 11 seconds ago.

 server tedesco?! o_O;;
Molti, si. :)
-- 
ZER0
~ The Tangent Universe collapsed 5997 days, 9 hours, 3 minutes and 45 seconds ago.

 server tedesco?! o_O;;
Eh, basta vedere: io sono connesso a 4 newsgroup, da un totale di circa 100
messaggi alla mattina stamattina ne ho trovati 4....:-/
