Вспомогательные функции jQuery
Вспомогательные функции jQuery – это функции принадлежащие пространству имен jquery($
), но не воздействующий на обернутый набор элементов (в отличие от методов jquery). Такие функции определены не глобальном пространстве имен (window
), а в пространстве имен jquery($
).
Вспомогательные функции, следуя логики, не должны воздействовать на DOM-объекты (оставим это методам), то есть вспомогательные функции воздействуют на объекты js или выполняют какие-либо специфические операции.
Данные функции, как правило, полезны при написании самих методов. Для работы с элементами страницы используйте готовые методы библиотеки jQuery.
Примеры вспомогательных функций jquery
$.trim
$.trim(value)
- удаляет начальные и концевые пробельные символы из строки value
и возвращает результат
value
- строка- возвращаемое значение - усеченная строка
jQuery
$(document).ready(function(){
console.log($.trim(" Привет Медвед ")+"1"); // Привет Медвед1
});
$.each
У jquery есть метод each
для обхода элементов в обернутом наборе, вспомогательная функция jquery each
позволяет обойти элементы массива и объекты jquery
$.each(container,callback)
container
- массив или объект по элементам которого будет произведен обходcallback
- функция, будет выполнена для каждого элемента вcontainer
- Первый параметр этой ф-и - индекс элемента массива или св-ва объекта
- Второй параметр этой ф-и - значение элемента массива или св-ва объекта. Контекст(
this
) содержит значение, которое передается во втором параметре
- возвращаемое значение - объект контейнер
jQuery
$.each( { name: "John", lang: "JS" }, function(i, n){
console.log( "Name: " + i + ", Value: " + n );
});
$.each( [0,1,2], function(i, n){
console.log( "Item #" + i + ": " + n );
});
//Name: name, Value: John
//Name: lang, Value: JS
//Item #0: 0
//Item #1: 1
//Item #2: 2
$.grep
Вспомогательная функция $.grep
предназначена для обхода массивов с целью найти элементы соответствующие определенным критериям.
$.grep(array,callback,invert)
array
- массив, элементы которого будут проверяться на включение в новый массивcallback
- функция, возвращаемое значение которой и определяет будет ли элемент массива включен в новый массив. Если возвращаетtrue
, то элемент будет включен в новый массив, при условии чтоinvert
не равноtrue
, в этом случае будет ровно наоборот:- Первый параметр этой ф-и - значение элемента
- Второй параметр этой ф-и - индекс элемента массива или св-ва объекта.
invert
- приtrue
инвертирует нормальное действие функции- возвращаемое значение - массив из отобранных значений
jQuery
var arr = [
{"name":"Alan","height":"171","weight":"66"},
{"name":"Ben","height":"182","weight":"90"},
{"name":"Chris","height":"163","weight":"71"}
];
new_arr = $.grep(arr, function(n, i){ // just use arr
return n.weight > 70;
});
console.dir(new_arr);
//0 Object { name="Ben", height="182", weight="90"}
//1 Object { name="Chris", height="163", weight="71"}
$.map
$.map
выполняет преобразование одного набора значений в другой, вы вспомните о for
, однако $.map
намного удобнее.
$.map(array,callback)
array
- массив, элементы которого будут преобразованы в значения эл-тов нового массиваcallback
- функция, возвращаемое значение которой является измененным значением для элемента нового массива.- Первый параметр этой ф-и - значение элемента
- Второй параметр этой ф-и - индекс элемента в исходном массива.
- возвращаемое значение - новый массив
jQuery
var ObjArr = [{ a:1,b:2 },{ a:2,b:3 },{ a:3,b:4 }];
var ArrArr = $.map(ObjArr, function(n,i){
return [[ n.a, n.b ]];
});
console.dir(ArrArr);
/*
0 [1, 2]
0 1
1 2
1 [2, 3]
0 2
1 3
2 [3, 4]
0 3
1 4
*/
$.inArray
Вспомогательная функция $.inArray
позволяет найти в массиве нужное вам значение,
если он есть, а также его местоположение.
$.inArray(value,array)
array
- массив, в котором будет произведен поискvalue
- значение, по которому будет произведен поиск.- возвращаемое значение - индекс первого вхождения значения
value
в массивarray
jQuery
var data=[2,4,6,8];
alert( $.inArray(4,data) ); // 1
alert( $.inArray("4",data) ); // -1
$.merge
Для объединения двух массивов в один есть вспомогательная функция $.merge
$.merge(array1,array2)
array1
- массив, в него будут добавлены элементы из второго массиваarray2
- массив, из него будут добавлены элементы в первый массив- возвращаемое значение - первый массив, измененный в процессе объединения
jQuery
$.merge( [ 0, 1, 2 ], [ 2, 3, 4 ] )
// [ 0, 1, 2, 2, 3, 4 ]
$.extend
Вспомогательная функция $.extend
позволяет расширить объект свойствами других объектов.
$.extend(deep,target,obj1,obj2,obj3,.....,objN)
deep
- флаг, необязательный параметр и определяет какое будет копирование: поверхностное (по умолчание, если параметр опущен или равенfalse
; еслиtrue
, то полное копирование)target
- объект, дополняемый свойствами других объектовobj1,obj2,obj3,.....,objN
- объекты, свойства данных объектов добавляются в объектtarget
- возвращаемое значение - расширенный объект
target
jQuery
var a = {foo: 1, bar: 1};
var b = {foo: 2, baz: 2};
var c = {foo: 3};
var r = jQuery.extend(a,b,c);
console.log("A: Foo=" + a.foo + " Bar=" + a.bar + " Baz=" + a.baz);
console.log("B: Foo=" + b.foo + " Bar=" + b.bar + " Baz=" + b.baz);
console.log("C: Foo=" + c.foo + " Bar=" + c.bar + " Baz=" + c.baz);
console.log("R: Foo=" + r.foo + " Bar=" + r.bar + " Baz=" + r.baz);
console.log("A === R?: " + (a === r));
/*A: Foo=3 Bar=1 Baz=2
B: Foo=2 Bar=undefined Baz=2
C: Foo=3 Bar=undefined Baz=undefined
R: Foo=3 Bar=1 Baz=2
A === R?: true*/
Вспомогательные функции jquery для проверки типов объектов
Функция | Описание |
---|---|
$.isFunction(obj)
|
Возвращает true , если obj является функцией js.
|
$.isEmptyObject(obj)
|
Возвращает true , если obj является объектом без свойств,
включая свойства полученные посредством prototype
|
$.isArray(obj)
|
Возвращает true , если obj является массивом js $.isArray([]) // true
|
$.isPlainObject(obj)
|
Возвращает true , если obj является объектом js,
созданным при помощи фигурных скобок {} $.isPlainObject({}); // true
|
$.isXMLDoc(obj)
|
Возвращает true , если obj является объектом XML
или узлом документа XML
|
Пример работы $.isEmptyObject(obj)
jQuery
function stub() {};
var objs = [
function() {},
{ x:15, y:20 },
null,
stub,
"function"
];
jQuery.each( objs, function( i ) {
console.log(objs[ i ]+":"+jQuery.isFunction( objs[ i ]));
});
/*
function () {}:true
[object Object]:false
null:false
function stub() {}:true
function:false
*/
Пример работы $.isEmptyObject(obj)
jQuery
jQuery.isEmptyObject({}); // true
jQuery.isEmptyObject({ foo: "bar" }); // false
Вспомогательная функция jquery $.contains
Вспомогательная функция $.contains
проверяет входит ли cont
в объект container
$.contains(container,cont)
container
- элемент dom, в котором идет проверка на наличие другого элемента (cont
)cont
- элемент dom, который проверяется на вхождение в другой dom элемент- возвращаемое значение
true
, если вcontainer
входитcont
, иначеfalse
jQuery
$.contains( document.documentElement, document.body ); // true
Создаем свою вспомогательную функцию jquery
Для примера я создам самую простую вспомогательную функцию из всех возможных.
jQuery
$.plisFive = function(val){
var varFive = val * 5;
return varFive;
}
var opa = $.plisFive(5);
console.log(opa);
Комментарии к статье