Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Gino86
    Registrato dal
    Jun 2009
    Messaggi
    43

    GET valore TD da Javascript

    Ciao ragazzi, una domanda semplice semplice... penso di essere vicino alla soluzione ma qualcosa non quadra.

    ho una tabella con all'interno delle righe con del testo e delle select, a seconda del valore della select ho bisogno di recuperare il testo della prima cella della riga...

    io ho provato cosi

    items = getElementsByTagName("select");
    ho la lista delle select le scandisco una per una con un ciclo e accedo all'elemento in questo modo

    items.item(i);

    per poter accedere alla prima cella della stessa riga faccio così

    items.item(i).parentNode.parentNode.childNodes.ite m(0).nodeValue;

    solo che quando provo a stampare il valore ritorna un bell null!!!

    posto l'algoritmo

    items = document.getElementsByTagName("select");
    for(i = 0; i < items.length; i++)
    if(items.item(i).value != "Ok" && items.item(i).value != "Fuori servizio")
    message += " tranne " + items.item(i).parentNode.childNodes.item(0).nodeVa lue;


    ho provato anche con innerHtml, value, text ma non funziona con nessuno, secondo me accedo all'elemento sbagliato... conosciete qualche via piu veloce?

    ho visto che si puo fare anche accedendo direttamente alla tabella usando un istruzione del genere ma non riesco a recuperare il testo della cella

    document.getElementById("tableName").rows[n].cells[m]

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Gino86
    Registrato dal
    Jun 2009
    Messaggi
    43
    ci sono riuscito...

    document.getElementById("tableChecklist").rows[i].cells[0].textContent

    però come faccio passando per i nodi?

    grazie

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: GET valore TD da Javascript

    Originariamente inviato da Gino86
    secondo me accedo all'elemento sbagliato...
    senza vedere l' xhtml non si puo' ne' confermare ne' smentire

  4. #4
    Utente di HTML.it L'avatar di Gino86
    Registrato dal
    Jun 2009
    Messaggi
    43
    <table id="tableChecklist">
    <th>Servizio</th><th>Accesso</th><th>Backdoor</th><th>Validità</th><th>Stato servizio</th>
    <tr class="even">
    <td>23: Dealer Support</td><td>411411</td><td>06 - 5955 - 4926</td><td>LUN - SAB 8 --> 21</td><td><select name="1" id="1" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>

    <tr class="odd">
    <td>45: VIP Support</td><td>411000</td><td>06 - 5955 - 4935</td><td>LUN - DOM 8 --> 24</td><td><select name="11" id="11" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>
    <tr class="even">
    <td>43: Sales Support </td><td>800.179.898</td><td>06 - 5955 - 4931</td><td>LUN - VEN 9 --> 19</td><td><select name="10" id="10" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>

    <tr class="odd">
    <td>Post Paid</td><td>4334</td><td>06 - 5955 - 4946</td><td></td><td><select name="9" id="9" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>
    <tr class="even">
    <td>IVR: Infotariffe </td><td>4118</td><td>06 - 5955 - 4930</td><td>LUN - DOM 0 --> 24</td><td><select name="8" id="8" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>

    <tr class="odd">
    <td>IVR: TopUp</td><td>4330</td><td>06 - 5955 - 4924</td><td>LUN - DOM 0 --> 24</td><td><select name="7" id="7" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>
    <tr class="even">
    <td>47: Corporate (Estero)</td><td>393.393.139</td><td>06 - 5955 - 4943</td><td>LUN - DOM 8 --> 24</td><td><select name="6" id="6" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>

    <tr class="odd">
    <td>47: Corporate</td><td>139</td><td>06 - 5955 - 4937</td><td>LUN - DOM 8 --> 24</td><td><select name="5" id="5" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>
    <tr class="even">
    <td>42: Grandi Aziende</td><td>800.179.797</td><td>06 - 5955 - 4932</td><td>LUN - DOM 0 --> 24</td><td><select name="4" id="4" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>

    <tr class="odd">
    <td>40: Servizio clienti (Estero)</td><td>393.393.133</td><td>06 - 5955 - 4928</td><td>LUN - DOM 0 --> 24</td><td><select name="3" id="3" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>
    <tr class="even">
    <td>40: Servizio Clienti</td><td>133</td><td>06 - 5955 - 4920</td><td>LUN - DOM 0 --> 24</td><td><select name="2" id="2" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>

    <tr class="odd">
    <td>45: VIP Support</td><td>800.179.500</td><td>06 - 5955 - 4936</td><td>LUN - DOM 8 --> 24</td><td><select name="12" id="12" onchange="stateChanged(this);"><option value="---">---</option><option value="Ok">Ok</option><option value="Fuori servizio">Fuori servizio</option><option value="Da rifare">Da rifare</option></select></td></tr>
    </table> </table>




    Come si fa a formattare il messaggio?
    :master: VVoVe:

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    [ code]...[ /code]
    [ php]...[ /php]

    non ho molto tempo per spiegarti nei particolari, ma tutto dipende dal markup:
    tu dopo un <tr> vai a capo e per i browser aderenti agli standard quell' andare a capo e' un nodo di testo (vuoto), questo e' il primo figlio, che ovviamente non puo' avere altri figli

    appoggiati ad una funzioncina che restituisca in maniera crossbrowser il riferimento al primo nodo figlio dell' elemento che sia sicuramente un elemento
    codice:
    function getFirst(n){
    	for(var f=n.firstChild;f!=null;f=f.nextSibling){
    		if(f.nodeType==1) return f;
    	}
    	return false;
    }
    cosi' da poter scrivere qualcosa del genere
    var testoInPrimoTd=getFirst(items[0].parentNode.parentNode).firstChild.nodeValue;

    ciao

  6. #6
    Utente di HTML.it L'avatar di Gino86
    Registrato dal
    Jun 2009
    Messaggi
    43
    ok grazie però non capisco perchè il bisogno di usare quella funzione, quando penso che con parentNode e childNodes in teoria ci si dovrebbe arrivare! voglio solo capire come funzionano questi parentNode e childNodes e su cosa si basano!

    Cmq grazie per la risposta, se non trovo qualcosa che riesco a capire al massimo uso quella oppure tengo la mia soluzione dove uso rows e cell

    Ciao!

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da Gino86
    ok grazie però non capisco perchè il bisogno di usare quella funzione, quando penso che con parentNode e childNodes in teoria ci si dovrebbe arrivare!
    se n'e' dibattuto parecchio, il punto e' che lo standard al riguardo, sebbene poco intuitivo, e' questo

  8. #8
    Utente di HTML.it L'avatar di Gino86
    Registrato dal
    Jun 2009
    Messaggi
    43
    ah capito, vorrà dire che me lo studierò, cmq secondo te anche la mia soluzione può andare bene?

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    si', ma hai provato con IE?
    non puoi usare textContent
    firstChild.nodeValue

  10. #10
    voglio solo capire come funzionano questi parentNode e childNodes e su cosa si basano!
    node (nodo) è un termine ke identifica un tag in un documento formato xml (tutti i documenti ke finiscono con ml (markup language) : html, xhtml, xml ecc.. possono essere divisi in tags o nodi (es: <NODO1>) e i linguaggi client possono navigare attraverso questi documenti utilizzando appunto le istruzioni ke finiscono per "node".

    tutte le istruzioni in plurale inglese (in questo caso childNodes) identificano delle collezioni: ossia questi tags vengono diciamo "ordinati" come valori di un array e quindi possono venir richiamati indicando childNodes seguito da un intero chiuso tra virgolette ke identifica la posizione del nodo:

    childNodes[1] = prendi il primo nodo della collezione childNodes

    ovviamente childeNodes identifica la collezione dei nodi figli del nodo dove ci si trova (o si è puntato)
    mentre ParentNode identifica il nodo padre ossia il nodo superiore alla posizione corrente

    E' una spiegazione sommaria spero sia chiara

    ciauz
    Fabio Di Tommaso

    Consulente IT
    Webmaster
    Sviluppatore Microsoft SAP

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.