Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    A pro di childNodes .........

    Ciao.
    Ho questa function:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    title>Untitled Document</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    script language="JavaScript" type="text/JavaScript">
    function 
    countChildNodes()
    {
    var  
    child document.getElementById("wrapper").childNodes;
    alert(child.length);

    }
    window.onload = function()
     {
        
    countChildNodes();    
        }

    </script>
    </head>

    <body>
    <p id="wrapper">
    <span>uno</span>
    <span>due</span>
    <span>tre</span>
    </p>
    </body>
    </html> 
    Il risultato è 7 perchè ?
    Mi sarei aspettato 6 (si lo so )
    il tag span e il text dentro
    mi servirebbe anche un link per conoscere la varia
    implementazione che fanno i vari browsers.
    Scusate ma causa worm su win sono su linux
    (diciamo che per ora sono accampato non
    ho tutti i miei bei linketti e sto diventando
    matto per organizzarmi un minimo)
    e non ho modo di testare la cosa anche su IE.
    C'è un altro modo di intefacciarsi con i tags/value
    del contenuto di P.


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

  2. #2

    ..............

    Ferma restando la domanda di prima
    sono passato a questo:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    title>Untitled Document</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    script language="JavaScript" type="text/JavaScript">
    function 
    countChildNodes()
    {
    var  
    child document.getElementById("wrapper").getElementsByTagName('span');
    alert(child.length);
    alert(child[0].firstChild.nodeValue);

    }
    window.onload = function()
     {
        
    countChildNodes();    
        }

    </script>
    </head>

    <body>
    <p id="wrapper">
    <span>uno</span>
    <span>due</span>
    <span>tre</span>
    </p>
    </body>
    </html> 
    So che ci sono differenze tra i browser e l'altro
    avete una function cross-browser ?

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

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

    Re: A pro di childNodes .........

    Originariamente inviato da whisher
    Il risultato è 7 perchè ?
    e che i ritorni a capo non li vuoi contare?

    lo so che suona strano, ma i browser aderenti agli standard considerano anche quelli e i tab

    aggiri il problema controllando il nodeType di child[x], se e' 1 e' un elemento xhtml
    (... 2 attributo, 3 testo... qui quello che dice il w3c
    http://www.w3.org/TR/2000/REC-DOM-Le...#ID-1950641247
    )

  4. #4

    ........

    Ciao e grazie per il chiarimento.
    Ho questo esempio:
    Codice PHP:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    title>Untitled Document</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    script language="JavaScript" type="text/JavaScript">
    function 
    countChildNodes()
    {
        var  
    child document.getElementById("wrapper").childNodes;
        for(
    0child.lengthi++)
        {
            if(
    child[i].nodeType==1)
            {
                
    alert(child[i].firstChild.nodeValue);
            }
            if(
    child[i].nodeType==3)
            {
                
    alert(child[i].nodeValue);
            }
        }
    }

    window.onload = function()
    {
        
    countChildNodes();    
    }

    </script>
    </head>

    <body>
    <p id="wrapper">
    <span>uno</span>
    <span>due</span>
    <span>tre</span>
    </p>
    </body>
    </html> 
    Nel primo if se il nodeType è uguale ad 1
    (è un tag xhtml) con firstChild recupero il valore.
    Nel secondo se è uguale a 3 (è un nodo di testo)
    mi aspetterei di poter recuperare il valore con
    child[i].nodeValue che invece risulta vuoto.
    Ancora una volta xchè ?




    Ps
    Secondo me vedo + affidabile la
    soluzione con
    var child = document.getElementById("wrapper").getElementsByTa gName('span');
    tu cosa ne pensi
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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

    Re: ........

    Originariamente inviato da whisher
    se è uguale a 3 (è un nodo di testo)
    mi aspetterei di poter recuperare il valore con
    child[i].nodeValue che invece risulta vuoto.
    Ancora una volta xchè ?
    sicuro che sia vuoto e non ...spazio?
    questo
    <span>uno</span>aaa
    riporta correttamente aaa dopo uno

    sull' uso del getElementsByTagName, nel caso specifico posso essere d' accordo,
    ma posso immaginare casi in cui non ti puo' aiutare e l' unica e' muoversi lungo l' alberatura con gli altri metodi del DOM

    ciao

  6. #6

    .....

    Si hai perfettamente ragione.
    Grazie ancora del chiarimento.


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