Во всех языках программирования существует работа со строками и обработка массивов. И JQuery — не исключение. Комплиментарный и ненавязчивый по своей природе, JQuery не заменяет существующий набор функций JavaScript собственными, а просто дополняет их наиболее недостающими. Обрезка строк: $.trim(value)
Для работы со строками в языке JavaScript имеется довольно большое количество функций, таких как split, substr, charAt (см. доп. информацию по ссылке http://www.w3schools.com/jsref/jsref_obj_string.asp ). Однако, по каким-то загадочным причинам, функции trim для удаления пробелов в начале и конце строки нет. Но нашлись люди талантливые и не жадные, написавшие различные варианты собственных версий функции trim. Как например:
var trimmed = str.replace(/^\s+|\s+$/g, ”) ;
Функция работает отлично. Однако, как насчет простого вызова функции trim() с помощью JQuery? Синтаксис выглядит следующим образом: $.trim(value)
var trimmed = $.trim(” this really needs to be trimmed “);
Доступно и понятно, не так ли?
Функции обработки массива:
$.each (container, callback)
В JQuery в дополнение к традиционным типам массивов JavaScript (массив строк, чисел, элементов ) существует также специальный массив объектов в виде пары ключ-значение.
В JavaScript массив записывается следующим образом:
var arr = [ “one”, “two”, “three”, “four”, “five” ];
А в JQuery (каждая пара отделена двоеточием так:
var obj = { item1: “one”, item2: “two” ,item3: “three”, item4: “four”};
Осуществить проход по массиву JavaScript несложно. Однако, это может сделать еще проще с помощью функции JQuery $.each. Синтаксис таков: $.each (container, callback). Функция обратного вызова получает два аргумента: в случае с массивом [] (традиционный JavaScript) — индекс и знамчение; а в случае с массивом {} (массив объектов со свойствами) — ключ и значение.
Таким образом, в приведенном примере JQuery может получать доступ к элементам массива (заранее прошу прощения за такое количество alert):
Code
var arr = ["one", "two", "three"];
var obj = {item1: "one", item2: "two", item3: "three"};
$.each(arr, function (n, val) {
alert("Item " + n + " = " + val);
});
$.each(obj, function (n, val) {
alert(key + " = " + val);
});
$.grep (array, callback, invert) В JQuery есть функция $.grep(), которая возвращает массив элементов, удовлетворяющих определенному условию. Функции обратного вызова передается два параметра: текущее значение и его индекс. Например:
Code
var arr = [10,20,30,40, 50];
var newArr = $.grep(arr, function (n, i) {
return (n > 10 && n < 50);
});
$.each(newArr, function (n, val) {
alert("Item " + n + " = " + val);
});
$.map (array, callback)
Ниже представлен еще один пример удобной функции, которая преобразовывает все элементы в массив за один заход. Преобразовать массив строк в массив чисел? Да. Преобразовать массив чисел обратно в массив строк? Да. Прибавить 10 к каждому числу массива? Да. Просто вызовите функцию $.map.
Code
var arr = [10,20,30,40, 50];
array = $.map(arr, function (val) {
return "" + val + "";
});
Другие чрезвычайно полезные функции JQuery для работы с массивами: $.inArray(value, array) возвращает позицию первого найденного элемента по заданному значению.
Как например:
Code
// мы получим "this"
var inArr = $.inArray("this", ["this", "is", "a", "great", "fun"]);
$.unique(array) возвращает массив уникальных элементов. Как в этом примере:
Code
// мы получим "this" "is" "a" "great" "fun"
inArr = $unique(["this","this", "is", "a", "great", "fun"]);
$.makeArray(object) создает массив из выбранных элементов. Как в примере ниже:
Code
// создаст массив со всеми элементами div
var divs = $.makeArray($("div"));
$.extend(target, source1, source2, … sourceN) добавляет свойства источника в целевой элемент. Например:
Code
// до: {firstname: "John", lastname: "Doe"}
var target = {firstname: "John", lastname: "Doe"};
var source1 = {age: 20, gender: "M"};
//после: {firstname: "John", lastname: "Doe", age: 20, gender: "M"};
$.extend(target, source1);
Источник: www.flora.org.ru