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