Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.12.2014, 00:01
Аспирант
Отправить личное сообщение для милт Посмотреть профиль Найти все сообщения от милт
 
Регистрация: 28.06.2014
Сообщений: 55

массив из верхних узлов документа
Подскажите как создать массив из всех самых верхних узлов документа, то есть из тех узлов у которых нет childNodes. Нужно чтобы в массиве присутствовали ELEMENT_NODE и TEXT_NODE. Может быть в js или jquery есть какие-то подходящие стандартные функции?
Ответить с цитированием
  #2 (permalink)  
Старый 14.12.2014, 00:06
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,290

https://developer.mozilla.org/en-US/...API/TreeWalker
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 14.12.2014, 03:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 32,602

милт,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  *  {
     border:  #3333FF solid 1px;
     padding: 5px;

  }
  </style>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
       $( ':not(:has(>))' ).css('background', 'rgb(102, 255, 102)');
});
  </script>
</head>

<body>

<div>
    <a>Нажимаем</a>
</div>
<ul>
    <li>1</li>
</ul>
</body>

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

милт, если нужны пустые 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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в шаблоне диррективы узнать массив это или строка? delias Angular.js 1 18.03.2014 06:33
Массив объектов doox911 Библиотеки/Тулкиты/Фреймворки 6 16.01.2014 21:36
Если селектор возвращает массив узлов, как работать с каждым по отдельности? балерун jQuery 7 15.02.2011 12:42
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30