Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.10.2011, 11:07
Интересующийся
Отправить личное сообщение для kent666 Посмотреть профиль Найти все сообщения от kent666
 
Регистрация: 19.04.2011
Сообщений: 27

DOM модель подсчет тегов документа
Всем привет.
помогите разобраться. У меня есть скрипт который определяет количество тегов в документе.
head>
<script>
	function countTags(n) { // n – это Node
		var numtags = 0; // Инициализируем счетчик тегов
		if (n.nodeType == 1 /*Node.ELEMENT_NODE*/) // Проверяем, является ли n
		// объектом Element
		numtags++; // Если это так, увеличиваем счетчик
		var children = n.childNodes; // Теперь получаем все дочерние элементы n
			for(var i=0; i < children.length; i++) { // Цикл по всем дочерним элементам
				numtags += countTags(children[i]); // Рекурсия по всем дочерним элементам
			}
		return numtags; // Возвращаем общее число тегов
	}
</script>
</head>
<!-- Это пример использования функции countTags() -->
<body onload="alert('Количество тегов в документе: ' + countTags(document))">
	Это <i>пример</i> документа.
</body>

результате подсчетов выдается ответ что в документе 5 тегов! Хотя если присмотреться то их тут только 4!!! Объясните где он находит 5 тег
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2011, 11:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,889

Сообщение от kent666
Объясните где он находит 5 тег
Выведи все tagName объектов и увидишь...
Ответить с цитированием
  #3 (permalink)  
Старый 17.10.2011, 11:28
Интересующийся
Отправить личное сообщение для kent666 Посмотреть профиль Найти все сообщения от kent666
 
Регистрация: 19.04.2011
Сообщений: 27

что то не получается.
head>
<script>
	function countTags(n) { // n – это Node
		var tag=document.getElementById("tag");
		var f;
		var numtags = 0; // Инициализируем счетчик тегов
		if (n.nodeType == 1 /*Node.ELEMENT_NODE*/) // Проверяем, является ли n
		// объектом Element
		f= n.tagName;
		numtags++; // Если это так, увеличиваем счетчик
		var children = n.childNodes; // Теперь получаем все дочерние элементы n
			for(var i=0; i < children.length; i++) { // Цикл по всем дочерним элементам
				numtags += countTags(children[i]); // Рекурсия по всем дочерним элементам
				f= f+ ", "+children[i].tagName;
			}
		tag.value= f; 
		return numtags; // Возвращаем общее число тегов
	}
</script>
</head>
<!-- Это пример использования функции countTags() -->
<body onload="alert('Количество тегов в документе: ' + countTags(document))">
	Это <i>пример</i> документа.
	<div id="tag"></div>
</body>

не работает

Последний раз редактировалось kent666, 17.10.2011 в 11:32.
Ответить с цитированием
  #4 (permalink)  
Старый 17.10.2011, 12:16
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от kent666
У меня есть скрипт который определяет количество тегов в документе.
alert(document.getElementsByTagName('*').length);
Ответить с цитированием
  #5 (permalink)  
Старый 17.10.2011, 20:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,889

Сообщение от kent666
что то не получается.
Да куда уже проще...

alert(document.getElementsByTagName('*')[0].tagName);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
События для вновь-вставленных тегов в DOM Mutagena jQuery 5 12.12.2011 17:56
Новый элемент отсутствует в DOM модели StrSprut jQuery 4 19.09.2011 11:50
onClick эвент для всего документа, кроме отдельно взятого элемента DOM el_erizo Events/DOM/Window 5 19.03.2010 14:09
Выбрать несколько тегов из DOM Alex78 Events/DOM/Window 1 08.10.2009 16:21