Доброго времени суток.
Требуется обойти древовидное меню, подскажите как исправить, а то в ступор зашёл.
Функция доходит до самых младших потомков (узлов), обрабатывает их, некоторых почему-то дважды, и помирает.
Как исправить не знаю
<div id="first">
<ul id="editor">
<li>1
<ul>
<li>11</li>
<li>12</li>
<li>13
<ul>
<li>131</li>
<li>132</li>
<li>133</li>
</ul>
</li>
<li>14</li>
</ul>
</li>
<li>2
<ul>
<li>21</li>
<li>22</li>
<li>23</li>
</ul>
</li>
<li>3</li>
<li>4</li>
</ul>
</div>
function Next(n) {
if(n.getElementsByTagName('li').length > 0) return n;
}
function rec(ul)
{
if(ul.getElementsByTagName('ul').length > 0)
{
el=ul.getElementsByTagName('ul')[0].childNodes;
if( el.length > 0 )
{
for(var i=0; i < el.length; i++)
{
if(el[i].nodeType != 3)
{
alert( el[i].innerHTML );
if(Next(el[i])) rec( el[i] );
}
}
}
}
}
rec(document.getElementById('first'));
P.S. желательно без библиотек