Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   DOM мини фреймворк селекторов CSS (https://javascript.ru/forum/events/21642-dom-mini-frejjmvork-selektorov-css.html)

prolapse 19.09.2011 01:59

DOM мини фреймворк селекторов CSS
 
Как из объектов: getElementById
getElementsByTagName
getElementByClassName

Делать дальше селекцию по ид/тэгу/классу????

Вылазят ошибки. Если гнать через точку операторы.

То есть передаются аргументы Css селекторов(тэг/id/class) в произвольном порядке.

Вот мой код:

//Функция в которую будут передаваться произвольное количество селекторов(id/tag/class) поочереди.
function $(s, s1, s2, s3, s4, s5) {
//Просто выбираем тэг боди =)
     var CssS = document.getElementsByTagName('body');
//Функция которая получает аргумент, определяет его тип(id/class/tag)
//и делает приписывает к переменной CssS - елементу body новый селектор.
function SelectorDefiner (CurrentArg) {
//для Id аргумент id состоит из #IdName
     if (CurrentArg.indexOf('#') != -1) {
  	 CurrentArg = CurrentArg.slice(1);
  	 CssS = CssS.getElementById(CurrentArg)
  	 return CssS;
  	 }
//для class аргумент class состоит из .ClassName
  	else if (CurrentArg.indexOf('.') != -1) {
  	 CurrentArg = CurrentArg.slice(1);	
  	CssS = CssS.getElementsByClassName(CurrentArg);
  	return CssS
  	   }
  	else {
для тэгName
   	CssS = CssS.getElementsByTagName(CurrentArg);
   	return CssS;
     }}
//Обходим все собранные аргументы.
     for (var i=0; i < arguments.length; i++) {
//Отправляем аргумент на сборку селектора DOM.
     SelectorDefiner(arguments[i]);
     }
         
}

Использование: 
window.onload = go;
function go(){ 
var first = $('#top','#mastesr','span');
first.style.color = 'green';


Часовой пояс GMT +3, время: 13:25.