четверг, 8 октября 2009 г.

JavaScript возвращение :)

Здравствуйте, я долго и далеко пропадал, но любовь к JavaScript лишь крепчала :), поэтому решил продолжить писать заметки о JavaScript, и так...

Наверняка, кто-то уже такое написал и обсудил, в библиотеках это сделано точно, и все-же.
Допустим нам нужно создать DOM элемент с параметрами, например <div id='myDiv' style='border:1px solid black; color:red;'> и я очень часто вижу var obj = document.createElem... obj.style.border =... итд, если нужен один элемент то ещё ладно, но когда их несколько это очень много лишних строк кода. Решение очень простое.

function MakeElement(elName,attr){ 
 return SetAttr(document.createElement(elName),attr);
}
function SetAttr(el,attr){
 var a = '';
 for(a in attr){
     if(typeof attr[a] == 'object')SetAttr(el[a],attr[a]);
            else
            el[a] = attr[a];  
 }
  return el;
}
MakeElement('DIV',{'id':'myDiv','style':{'border':
'1px solid black','color':'red'}}); 
Можно оставить одну функцию SetAttr и выглядеть будет не менее симпатично.
function SetAttr(el,attr){
 var a = ''; 
 for(a in attr)
  if(typeof attr[a] == 'object')SetAttr(el[a],attr[a]);
        else el[a] = attr[a];  
}
SetAttr(document.createElement('DIV'),{'id':'myDiv','style':
{'border':'1px solid black','color':'red'}});
А вообще, очень часто банальную задачу, как взять элемент, присвоить стиль, в общем для действие решаемого в 5-10 строк кода подключают библиотеки и пишут 3-8 строк кода, это напоминает сайты на которых кнопки которые меняют фон при наведении сделаны на Flash :), да есть такое, пару дней назад видел.

1 комментарий:

Анонимный комментирует...
Этот комментарий был удален администратором блога.