GrAndSE’s blog

Думки, думки і ще раз думки

Мій ТОП функцій JavaScript

Вирішив написати фактично традиційний пост для будь-якого блога від веб-програміста. А саме набір функцій JavaScript, які вважаю за необхідне завжди мати під рукою.

1. Традиційно вибираємо елемент за id:

function $(id) {
return document.getElementById(id);

}

2. Функція, навколо якої точиться безліч суперечок, написані десятки реалізацій – вибір масиву елементів за іменем класу. Однак сподобався свого часу мені один ії варіант з одного англомовного блога:

function getElementsByClass(searchClass, node, tag) {
var classElements = new Array();
if (node == null)
node = document;
if (tag == null)
tag = ‘*’;
var els = node.getElementsByTagName(tag);
var pattern = new RegExp(‘(^|\\\\s)’+searchClass+’(\\\\s|$)’);
for (var i = 0, j = 0; i < els.length; i++)
if (pattern.test(els[i].className)) {
classElements[j] = els[i];
j++;
}
return classElements;
}

Можливо це не найшвидший варіант цієї функції, однак має деякий додатковий функціонал, що іноді може стати в нагоді.

3. Видалення всіх елементів зі вказаного:

function cleanNode(dest) {
while (dest.firstChild)
dest.removeChild(dest.firstChild);
}

4. Деякі функції, яки не вистачає рядкам, а саме trim в різних його проявах:

if (‘undefined’ == typeof String.prototype.ltrim) {
String.prototype.ltrim = function() {
return this.replace(/^\s+/, ”);
}
}
if (‘undefined’ == typeof String.prototype.rtrim) {
String.prototype.rtrim = function() {
return this.replace(/\s+$/, ”);
}
}
if (‘undefined’ == typeof String.prototype.trim) {
String.prototype.trim = function() {
return this.replace(/^\s+/, ”).replace(/\s+$/, ”);
}
}

5. Пошук елемента в масиві:

Array.prototype.inArray = function (value) {
for (var i = 0; i < this.length; i++)
if (this[i] === value)
return true;
return false;
};

Сподіваюсь ці функції стануть корисними, чи хоча б вікдриють комусь щось новеньке та цікаве. Дякую за увагу!

Жовтень 7, 2008 - Опубліковано grandse | Програмування | , | 2 Коментарі/ів

2 Коментарі/ів »

  1. а для чого якщо є jQuery чи Prototype :) ?

    Comment by aleksandro | November 13, 2008 | Відповісти

  2. А Ви щоденно використовуєте весь їх функціонал? Чи не буває випадків коли достатньо однієї чи двох функцій з цього списку? А чи завжди Вам вистачає функціоналу тих же JQuery, Protorype, Mootools, Dojo?
    Гадаю, що ні

    Comment by grandse | November 13, 2008 | Відповісти


Залишити коментар