sign in | join about | help | sitemap
Connecting Tech Pros Worldwide
Charlie T's Avatar

Need a little help with NODES


Question posted by: Charlie T (Guest) on July 23rd, 2005 02:31 PM
Hello,

I am a little confused... please help:

-----------------------------------
<DIV id="01">
<DIV id="aNum"></DIV>
<DIV id="bNum"></DIV>
<DIV id="cNum"></DIV>
</DIV>
------------------------------------

is <DIV id="01"> the parent node of <DIV id="aNum"></DIV> ?

If so... How do I access each child using DOM...

shoud this work?:
a = document.getElementById('DIV');
b = a(0).childNodes.length;

Thanks...
2 Answers Posted
Michael Winter's Avatar
Michael Winter July 23rd, 2005 02:32 PM
Guest - n/a Posts
#2: Re: Need a little help with NODES

On 8 Sep 2004 15:46:00 -0700, Charlie T <charlie.topjian@gmail.com> wrote:
[color=blue]
> Hello,
>
> I am a little confused... please help:
>
> -----------------------------------
> <DIV id="01">
> <DIV id="aNum"></DIV>
> <DIV id="bNum"></DIV>
> <DIV id="cNum"></DIV>
> </DIV>
> ------------------------------------
>
> is <DIV id="01"> the parent node of <DIV id="aNum"></DIV> ?[/color]

It is the parent of all of the <x>Num DIV elements. However, you should be
aware that you cannot start an id attribute value with a number. It must
begin with a letter.
[color=blue]
> If so... How do I access each child using DOM...
>
> shoud this work?:
> a = document.getElementById('DIV');
> b = a(0).childNodes.length;[/color]

No. You'll either want

var a = document.getElementById('divId');

or

var a = document.getElementsByTagName('DIV');

The first returns a reference to a specific DIV. The second returns a
(possibly empty) collection of all DIV elements in the document. Once you
have a reference to a particular node, then yes, you can use the
childNodes property to access the children of that node.

Another thing to note is that you don't index collections with parentheses
(). You use square brackets []. Whilst IE supports the use of parentheses,
that vast majority of browsers do not (and *should* not).

Finally, all of this has an important caveat: not all browsers you can
encounter on the Web will support the DOM. To be safe, you should always
test for a feature before using it.

if(document.getElementById)
var d = document.getElementById('myDiv');

if(d && d.childNodes) {
// Do stuff with the childNodes collection
}
}

If you haven't already, do read the FAQ entry on feature detection
(section 4.26):

Good luck,
Mike


clj FAQ:
<URL:http://jibbering.com/faq/>

--
Michael Winter
Replace ".invalid" with ".uk" to reply by e-mail.
Lee's Avatar
Guest - n/a Posts
#3: Re: Need a little help with NODES

Charlie T said:[color=blue]
>
>Hello,
>
>I am a little confused... please help:
>
>-----------------------------------
><DIV id="01">
><DIV id="aNum"></DIV>
><DIV id="bNum"></DIV>
><DIV id="cNum"></DIV>
></DIV>
>------------------------------------
>
>is <DIV id="01"> the parent node of <DIV id="aNum"></DIV> ?[/color]

Yes.

[color=blue]
>If so... How do I access each child using DOM...
>
>shoud this work?:
>a = document.getElementById('DIV');
>b = a(0).childNodes.length;[/color]

No, it shouldn't.
"DIV" is not the ID of any of your elements.
"a" is not a function, so "a(0)" is undefined.

a = document.getElementById('01');
b = a.childNodes.length;

Note that element '01' in your example has 7 childNodes,
including the text nodes surrounding the <div> nodes.

 
Not the answer you were looking for? Post your question . . .
196,829 members ready to help you find a solution.
Join Bytes.com

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over 196,829 network members.
Post your question now . . .
It's fast and it's free

Popular Articles

Top Community Contributors