0

I have code HTML:

<html>
<head></head>
<body>myText
<h1 id="a">Site 3</h1><h2>My Text</h2>
<script src="index.js"></script>
</body>
</html>

and i have Javascript code:

var el1 = document.childNodes[0]
function get(node,ob)
{
        ob = ob || {};

        if(node.childElementCount)
        {

            ob[node.nodeName] = {}
            for(var x = 0; x < node.childNodes.length;x++)
            {   
                if(node.childNodes[x].nodeType == 3)
                {

                    console.log(node.childNodes[x])// if node is bode show corectly text "myText"
                    ob[node.nodeName]["text"] = node.childNodes[x]// but text non corectly why?
                    continue
                }
                get(node.childNodes[x],ob[node.nodeName])       
            };  
        }
        else
        {
            ob[node.nodeName]   = (node.childNodes[0] == undefined ? null :node.childNodes[0].nodeValue )
        }
        return ob
}



var o = get(el1)
console.log(o)

When run cosnole.log(o) everything is good except text node. I want to get text on my object, can you tell my how?

1 Answers1

0

hehehe i'm genius ;d;d

if(node.childElementCount)
    {

        ob[node.nodeName] = {}
        ob[node.nodeName]["text"] = [];
        for(var x = 0; x < node.childNodes.length;x++)
        {   
            if(node.childNodes[x].nodeType == 3)
            {
                var txt = node.childNodes[x].nodeValue;


                ob[node.nodeName]["text"].push(txt)
                continue
            }
            get(node.childNodes[x],ob[node.nodeName])       
        };  
    }