Показать сообщение отдельно
  #4 (permalink)  
Старый 31.12.2014, 15:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

милт, если нужны пустые TEXT_NODE убрать && el.data.replace(/\s/g,'')
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script>
  window.onload =
     function(){

        var arrAll = [];
        function getEls(el) {
          var chNodes,
              i;
         if(el.childNodes.length == 0 && el.nodeType == 1||  el.nodeType == 3  && el.data.replace(/\s/g,'')) arrAll.push(el);
          else {
            chNodes = el.childNodes;
            for (i = 0; i < chNodes.length; i++) {
              getEls(chNodes[i]); // вызываем рекурсивно
            }
          }
        }

       getEls(document.body);
       alert(arrAll.length)
};
  </script>
</head>

<body>

<div>
    <a></a>  <!-- 1 -->
</div>
<ul>
    <li>1</li>    <!-- 2 -->
</ul>
</body>

</html>
Ответить с цитированием