Javascript.RU

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

Ребят, помогите разобраться с функцией
Всем доброго времени суток. Столкнулся с функцией следующего содержания:
function geByClass ( searchClass, node, tag ) {
	var classElements = new Array( );
	if ( node == null ) {
		node = document;
	}
	if ( tag == null ) {
		tag = '*';
	}
	if ( node.getElementsByClassName ) {
		classElements = node.getElementsByClassName( searchClass );
		if ( tag != '*' ) {
			for ( var i = 0; i < classElements.length; i++ ) {
				if ( classElements.nodeName == tag ) {
					classElements.splice( i, 1 );
				}
			}
		}
		return classElements;
	}
	var els = node.getElementsByTagName( tag );
	var elsLen = els.length;
	var pattern = new RegExp( '(^|\\s)' + searchClass + '(\\s|$)' );
	for ( var i = 0, j = 0; i < elsLen; i++ ) {
		if ( pattern.test( els[ i ].className ) ) {
			classElements[ j ] = els[ i ];
			j++;
		}
	}
	return classElements;
}

Функция используется ВКонтакте. Копался, копался и в итоге зашел в тупик. Например, как может быть вызван slice( ) для classElements? Условие if ( classElements.nodeName == tag ) { ... } в цикле for ( var i = 0; i < classElements.length; i++ ) { ... }. Насколько я понимаю, nodeName нужно указывать у каждого элемента classElements. Да и вообще не могу понять смысл всех этих конструкций. Ведь всегда функция будет возвращать массив объектов, найденных по классам (return classElements в первой части функции), а не по тегам с указанными классами. Если не сложно, можно объяснить смысл поверхностно. Да и вообще ваше мнение о ней. Спасибо.

Последний раз редактировалось HelpMe, 06.08.2010 в 15:15.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с кодом. TheWanderer Общие вопросы Javascript 10 17.04.2010 13:41
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 10:44
Помогите разобраться с галереей IMAGIN yana_studio Общие вопросы Javascript 4 12.12.2009 17:24
Помогите разобраться с задачей (поиск строки) Absinthe Ваши сайты и скрипты 6 07.12.2009 09:17
Помогите разобраться с функцией dateAdd Likan Общие вопросы Javascript 3 21.03.2008 16:13