.toggle() для childNodes / переключать неотображаемые элементы 2 на 2

Вот код, который я застрял слишком долго..

<ul class="list">
   <li> </li>
   <li><p>qwerty</p> </li>
   <li style="display:none;"> </li>
   <li style="display:none;"> </li>
</ul>

В отдельном файле:

function plusArg() {
var ul = document.getElementsByClassName('list')[0];
for(var i = ul.childNodes.length; i--;){
if(ul.childNodes[i].nodeName === 'LI' )
ul.childNodes[i].toggle('fade',1000);
//ul.childNodes[i].innerHTML = 'test' ;
}
}

Никаких признаков при вызове функции plusArg():/ (тестовая строка запускается без комментария). Я искал в Google, почему переключение не будет работать с childNodes, но без ответов. Я думаю, что есть веская причина, но вы это знаете? И если нет способа сделать то, что я хочу, таким образом, как я могу сделать это по-другому? Конечная цель состоит в том, чтобы отобразить кучу еще десяти неиспользованных кнопок, нажав уникальную кнопку.

Заранее спасибо!

2 ответа

Решение

Спасибо Альберт Кузьмин! Мне удалось достичь того, чего я хотел, благодаря вашему коду! Вот код:

<a href="#a" id="button">Toggle</a>
<ul class="list">
   <li>First</li>
  <li>Second</li>
  <li style="display:none;">Third</li>
  <li style="display:none;">Fourth</li>
  <li style="display:none;">Fifth</li>
  <li style="display:none;">Sixth</li>
</ul>

$("#button").on("click",function(){
   var index = 0;
   $(".list li").each(function(){
   if (!$(this).is(":visible") & index != 2){
       index++;
       $(this).fadeToggle( "slow", "linear" );
   }});
});

Jsfiddle: http://jsfiddle.net/qho65ov4/2/

Вот как это можно сделать с помощью jQuery:

<a href="#a" id="button">Toggle</a>
<ul class="list">
   <li>first</li>
   <li><p>qwerty</p></li>
   <li style="display:none;">Third</li>
   <li style="display:none;">Fourth</li>
</ul>

$("#button").on("click",function(){
    $(".list li").each(function(){
        $(this).fadeToggle( "slow", "linear" );
    });
});

Скрипка: http://jsfiddle.net/qho65ov4/

Другие вопросы по тегам