1) getCookie():
2) setCookie():
3) deleteCookie():
4) inArray():
Очень грустно, что inArray не входит в ядро DOM. Эта функция, однако, не совсем функция. Это прототип, который расширяет заданный в DOM объект Array. Ну да, расширение inArray делает свою работу точно так, как вы и думали, если вы, конечно, PHP-программист.
5) insertAfter():
6) toggle():
Если быть полностью честным, вариантов этой функции существует более чем достаточно. По сути, история 'переключалки' происходит от скрытия\показа элемента как реакции на событие.
7) getElementsByClass():
Представляет собой плод коллективного творчества. Несколько разработчиков реализовали свои собственные версии, и не было доказано, что какая-нибудь одна версия лучше, чем другая. Как вы могли ожидать, моя скромная особа попробовала превзойти всех остальных. Функция getElementsByClass порождена необходимостью веб-программистов изящно и быстро выбирать элементы по имени класса, и к удивлению разработчиков, она не является настоящим методом DOM, как они могли бы подумать: в конце концов, есть getElementById, getElementsByName(), getElementsByTagName, но нет getElementsByClass!
8) addLoadEvent():
Изначально написанная Саймоном Виллисоном (Simon Willison) она была замечательно освоенна всеми остальными, как простой способ добавить события, запускающиеся после загрузки страницы. Функция, разумеется, прикрепляет все ваши события к обработчику события onload, которого некоторые всё ещё могут увидеть, если есть такая необходимость, и, тем не менее, функция делает ровно то, что от неё ожидается, и делает это хорошо.
9) addEvent():
Конечно же, скрепка для прикрепления события!
И 10 не менее важная функция, прототип доллар-функции:
Код:
Функция принимает не только строки, но и объекты! Вы можете передать ей один аргумент, или же много! Безусловно, доллар-функция - моя любимая функция на всю жизнь, и она будет приносить пользу долгие, долгие годы.
Код:
function getCookie( name ) {
var start = document.cookie.indexOf( name + '=' );
var len = start + name.length + 1;
if ( ( !start ) && ( name != document.cookie.
substring( 0, name.length ) ) ) {
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ';', len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}
Код:
function setCookie( name, value, expires, path, domain, secure ) {
var today = new Date();
today.setTime( today.getTime() );
if ( expires ) {
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name+'='+escape( value ) +
( ( expires ) ? ';expires='
+expires_date.toGMTString() : '' ) +
//expires.toGMTString()
( ( path ) ? ';path=' + path : '' ) +
( ( domain ) ? ';domain=' + domain : '' ) +
( ( secure ) ? ';secure' : '' );
}
Код:
function deleteCookie( name, path, domain ) {
if ( getCookie( name ) ) document.cookie = name + '=' +
( ( path ) ? ';path=' + path : '') +
( ( domain ) ? ';domain=' + domain : '' ) +
';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}
Очень грустно, что inArray не входит в ядро DOM. Эта функция, однако, не совсем функция. Это прототип, который расширяет заданный в DOM объект Array. Ну да, расширение inArray делает свою работу точно так, как вы и думали, если вы, конечно, PHP-программист.
Код:
Array.prototype.inArray = function (value) {
var i;
for (i=0; i < this.length; i++) {
if (this === value) {
return true;
}
}
return false;
};
5) insertAfter():
Код:
function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}
Если быть полностью честным, вариантов этой функции существует более чем достаточно. По сути, история 'переключалки' происходит от скрытия\показа элемента как реакции на событие.
Код:
function toggle(obj) {
var el = document.getElementById(obj);
if ( el.style.display != 'none' ) {
el.style.display = 'none';
}
else {
el.style.display = '';
}
}
Представляет собой плод коллективного творчества. Несколько разработчиков реализовали свои собственные версии, и не было доказано, что какая-нибудь одна версия лучше, чем другая. Как вы могли ожидать, моя скромная особа попробовала превзойти всех остальных. Функция getElementsByClass порождена необходимостью веб-программистов изящно и быстро выбирать элементы по имени класса, и к удивлению разработчиков, она не является настоящим методом DOM, как они могли бы подумать: в конце концов, есть getElementById, getElementsByName(), getElementsByTagName, но нет getElementsByClass!
Код:
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els.className) ) {
classElements[j] = els;
j++;
}
}
return classElements;
}
8) addLoadEvent():
Изначально написанная Саймоном Виллисоном (Simon Willison) она была замечательно освоенна всеми остальными, как простой способ добавить события, запускающиеся после загрузки страницы. Функция, разумеется, прикрепляет все ваши события к обработчику события onload, которого некоторые всё ещё могут увидеть, если есть такая необходимость, и, тем не менее, функция делает ровно то, что от неё ожидается, и делает это хорошо.
Код:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else {
window.onload = function() {
oldonload();
func();
}
}
}
Конечно же, скрепка для прикрепления события!
Код:
function addEvent(elm, evType, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);
return true;
}
else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
}
else {
elm['on' + evType] = fn;
}
}
Код:
Код:
function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments;
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
// Примеры использования $ функции:
var obj1 = document.getElementById('element1');
var obj2 = document.getElementById('element2');
function alertElements() {
var i;
var elements = $('a','b','c',obj1,obj2,'d','e');
for ( i=0;i < elements.length;i++ ) {
alert(elements.id);
}
}