Открыть меню    

Вспомогательные функции jQuery

вспомогательные функции 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);

Комментарии к статье