Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    74

    javascrip & DOM -- getAttribute non funziona

    Salve....

    Sto scrivendo del codice in ajax...e cerco di prelevare dati dal response in XML. nello specifico cercando di prelevare un attributo di un determinato tag, firefox notifica che getAttribute non è una funzione... anche opera ed explorer dicono la loro


    il file xml è il seguente:
    <record>
    <provincia idprovincia='1'> torino </provincia>
    </record>

    javascript ( il pezzo che popola un combobox )

    function validateCallbackCombobox(responseXML) {

    var provincia = responseXML.getElementsByTagName("provincia")[0];
    var message;

    if(provincia.hasChildNodes()){


    message = "Sono presenti dei nodi" + "\n";
    var vettore = provincia.childNodes;

    for (var contatore = 0; contatore < vettore.length; contatore++){
    document.regUserForm.provincia.options[contatore] = new Option( vettore[contatore].data, vettore[contatore].getAttribute("idprovincia"), false, false );
    }

    }else{
    message = "Non sono presenti dei nodi" + "\n";
    }

    alert(message);

    }

    se elimno il codice del getAttribute, viene eseguito tutto correttamente

    Cosa sbaglio????? atendo notizie grazie tante!!!!

  2. #2

    Re: javascrip & DOM -- getAttribute non funziona

    Originariamente inviato da Dork
    Cosa sbaglio?????
    a te serve un attributo di quel nodo, non un attributo di un childnode che in questo caso oltre al testo (textNode che non ha attributi) non sarà altro ...


    codice:
    var provincia = responseXML.getElementsByTagName("provincia")[0];
    alert(provincia.getAttribute("idprovincia"));
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    74
    ciao....
    risolto.....
    c'era un errore nella logica di gestione dei nodi...

    Adesso ho un altro problema quando tento di prelevare il contenuto del tag
    ( questo è il codice giusto ):

    se uso provincia[contatore].childNodes[0].data : explorer, firefox e opera stampano "undefined"

    su uso provincia[contatore].childNodes[0].text : explorer e opera stampano il valore corretto mentre firefox stampa "undefined"

    quale comando devo utilizzare per fare in modo che funzioni in tutti e tre ?????

    function validateCallbackCombobox(responseXML) {

    var provincia = responseXML.getElementsByTagName("record");
    var message = "";

    for (var contatore = 0; contatore < provincia.length; contatore++){
    message = message + "Nodo " + contatore + " : " + provincia[contatore].childNodes[0].nodeName + "\n";
    message = message + "Contenuto Nodo " + contatore + " : " + provincia[contatore].childNodes[0].data + "\n";
    message = message + "Attributo Nodo " + contatore + " : " + provincia[contatore].childNodes[0].getAttribute("idprovincia") + "\n";

    document.regUserForm.provincia.options[contatore] = new Option( provincia[contatore].childNodes[0].data, provincia[contatore].childNodes[0].getAttribute("idprovincia"), false, false );
    }

    alert(message);

    }

  4. #4
    Originariamente inviato da Dork
    quale comando devo utilizzare per fare in modo che funzioni in tutti e tre ?????
    benvenuto nell'inferno client side di Explorer, colui che non ha mai seguito gli standard ed ha sempre fatto tutto come razzo gli pareva meglio ... Opera è un ibrido che non comprendo in questi casi, ma il punto è che text è un non si sa cosa di IE mentre value o meglio nodeValue è il modo DOM standard di prendere il testo contenuto in un elemento


    P.S. le librerie JavaScript sono molto usate soprattuttto perchè la gente non ha voglia ne tempo di imparare tutte le problematiche di mancata compatibilità standard dei vari browsers ... se sei a digiuno di JS ti consiglio di dare un'occhiata a qualche lib che in poche righe fa quello che fai tu e tanto altro ancora
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    74


    Grazie tante.....
    evviva il mio mondo....lato server side
    almeno qui le cose non funzionano perchè le scrivi male e non perkè esistono incompatibilità.
    Grazie per il tempo


  6. #6
    Originariamente inviato da Dork
    evviva il mio mondo....lato server side
    almeno qui le cose non funzionano perchè le scrivi male e non perkè esistono incompatibilità.
    attenzione, anche qui dipende dal linguaggio usato e da come è stato fatto il porting del suo interprete/compilatore/libreria del momento

    però di solito è come dici tu, fortunatamente mi reputo ancora uno sviluppatore server anche se per lavoro in questo momento sto facendo solo client
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Scusate


    @Andr3a

    non si sa cosa di IE mentre value o meglio nodeValue è il modo DOM standard di prendere il testo contenuto in un elemento

    Che differenza c'è tra accedere ad un nodo
    di tipo NODE_TEXT tra data e nodeValue

    Codice PHP:
    item.getElementsByTagName('nodo')[0].firstChild.data;

    e

    item
    .getElementsByTagName('nodo')[0].firstChild.nodeValue

    Il primo con ie6 non mi dà problemi (x quello funziona
    anche il secondo) pensavo che il metodo standard
    fosse questo (firstChild.data).
    Come al solito mi sono perso qc


    Qui c'è quello
    che fino ad ora ho utilizzato per ovviare
    ai problemi cross browser.


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    Originariamente inviato da whisher
    Che differenza c'è tra accedere ad un nodo
    di tipo NODE_TEXT tra data e nodeValue
    che data qui non lo vedo
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Se la metti così


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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