Мій ТОП функцій 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;
};
Сподіваюсь ці функції стануть корисними, чи хоча б вікдриють комусь щось новеньке та цікаве. Дякую за увагу!
а для чого якщо є jQuery чи Prototype
?
А Ви щоденно використовуєте весь їх функціонал? Чи не буває випадків коли достатньо однієї чи двох функцій з цього списку? А чи завжди Вам вистачає функціоналу тих же JQuery, Protorype, Mootools, Dojo?
Гадаю, що ні