<ul>s nested in <li>s - how to get the on on higher level ?

A

abs

Anybody has an idea how to get the <ul> element which is not nested in <li>
element ? In other words I have several lists like this:

<ul id="1">
<li>Aaaaaaaa</li>
<li>Bbbbbbbb</li>
<li>Cccccccc
<ul>
<li>111111</li>
<li>222222</li>
<li>333333
<ul>
<li>@@@@@@@@@</li>
<li>{{{{{{{}</li>
<li>????>>>>></li>
</ul>
</li>
</ul>
</li>
</ul>

<ul id"2">
<li>qqq</li>
<li>vvvv</li>
</ul>

and I want to get the <ul>s which have id "1" and "2" in this example but I
can't use ids to get them.

Best regards,
ABS
 
R

RobB

abs said:
Anybody has an idea how to get the <ul> element which is not nested
in said:
element ? In other words I have several lists like this:

<ul id="1">
<li>Aaaaaaaa</li>
<li>Bbbbbbbb</li>
<li>Cccccccc
<ul>
<li>111111</li>
<li>222222</li>
<li>333333
<ul>
<li>@@@@@@@@@</li>
<li>{{{{{{{}</li>
<li>????>>>>></li>
</ul>
</li>
</ul>
</li>
</ul>

<ul id"2">
<li>qqq</li>
<li>vvvv</li>
</ul>

and I want to get the <ul>s which have id "1" and "2" in this example but I
can't use ids to get them.

Hmm...very mysterious. Oh, well...any chance we could see the rest of
your document structure - not just that subtree?

var i = 0,
ul,
unnested_uls = [],
all_uls = document.getElementsByTagName('ul');
while (ul = all_uls.item(i++))
if (null == ul.getElementsByTagName('ul'))
unnested_uls.push(ul);

....should get you a collection of them.

http://www.webreference.com/programming/javascript/definitive/chap17/7.html
 
R

RobG

abs said:
Anybody has an idea how to get the <ul> element which is not nested in <li>
element ? In other words I have several lists like this:

<ul id="1">

An id should start with a letter, though it may contain numbers and
some other characters.

<li>Aaaaaaaa</li>
<li>Bbbbbbbb</li>
<li>Cccccccc
<ul>
<li>111111</li>
<li>222222</li>
<li>333333
<ul>
<li>@@@@@@@@@</li>
<li>{{{{{{{}</li>
<li>????>>>>></li>
</ul>
</li>
</ul>
</li>
</ul>

<ul id"2">

<li>qqq</li>
<li>vvvv</li>
</ul>

and I want to get the <ul>s which have id "1" and "2" in this example but I
can't use ids to get them.

Best regards,
ABS

Add this button to your page:

<input type="button" value="Click me" onclick="
var uls = document.getElementsByTagName('ul');
var i = uls.length;
while (i--){
if ( 'LI' != uls.parentNode.nodeName) {
alert('found ' + uls.id);
}
}
">

If you don't want to use getElementsByTagName, you could just walk
down the DOM tree, but that is getting really silly.
 
R

RobB

RobB said:
abs said:
Anybody has an idea how to get the <ul> element which is not nested
in said:
element ? In other words I have several lists like this:

<ul id="1">
<li>Aaaaaaaa</li>
<li>Bbbbbbbb</li>
<li>Cccccccc
<ul>
<li>111111</li>
<li>222222</li>
<li>333333
<ul>
<li>@@@@@@@@@</li>
<li>{{{{{{{}</li>
<li>????>>>>></li>
</ul>
</li>
</ul>
</li>
</ul>

<ul id"2">
<li>qqq</li>
<li>vvvv</li>
</ul>

and I want to get the <ul>s which have id "1" and "2" in this
example
but I
can't use ids to get them.

Hmm...very mysterious. Oh, well...any chance we could see the rest of
your document structure - not just that subtree?

var i = 0,
ul,
unnested_uls = [],
all_uls = document.getElementsByTagName('ul');
while (ul = all_uls.item(i++))
if (null == ul.getElementsByTagName('ul'))
unnested_uls.push(ul);

...should get you a collection of them.
http://www.webreference.com/programming/javascript/definitive/chap17/7.html

Eesh...early morning here. Never mind.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top