2012-02-18 2 views
-1
var $inventory=$('#inventory tbody'); 
var quantities=$inventory.find('td:nth-child(2)') // suppose it contains values of 2,3,4 inside td tags 
        .map(function(index,qty){ 
         return$(qty).text(); 
    }).get(); 

Теперь я не получаю map здесь. it'is используется как map(function(**index,qty**), но в соответствии с linkНе могу понять поведение MAP-метода?

это должно быть как

jQuery.map(arrayOrObject, callback**(value, indexOrKey**)) 

Но карта упоминается в моем коде все еще работает замечательно, но в противоположном направлении для INDEX и VALUE. и var quantities выходы
["2", "3", "4"] Итак, я смущен? Похоже на ошибку документации!

[Edit:] Над ГЭТ() используется в конце, но даже если я не использую его, то выход остается прежним, т.е. [ «2», «3», «4»] Так почему использовать его? Say мой модифицированный код теперь
// .....same above code
return$(qty).text(); });

+0

Почему минус 1? это смешно и неправильно использовать priveleges :( – kushalvm

ответ

0

Есть две «карты» методы: one в глобальном объекте (jQuery.map) и one, что принадлежит к результату выбора (jQuery.fn.map). Первый предназначен для использования с обычными массивами или объектами JavaScript. Вы используете второй, который применяется к списку выбранных элементов (поэтому нет необходимости в этом первом аргументе).

+0

Выше get() используется в конце, но даже если я его не использую, выход все тот же, то есть ["2", "3", "4"] Так почему использовать его? – kushalvm

+0

Вызов [get] (http://api.jquery.com/get/) без аргументов просто сделайте копию вашего набора элементов.Если вы хотите использовать определенную (например, третью), вы можете использовать '$ inventory.get (2)'. В этом случае это не имеет значения, но если вы планируете модифицировать набор деструктивно, создание его копии может оказаться полезным. – mgibsonbr

+0

вы этого не понимаете. ЧТО Я сказал, я понимаю, но я говорю, зачем использовать get() на первом месте, когда мои переменные количества будут иметь одинаковый результат, даже если я не использую get() выше! – kushalvm

1

.map()

это из docs вы используете .map, которые возвращают объект Jquery и внутри обратного вызова this относится к текущему DOM элем

.map (callback (index, domElement))

callback (index, domElement) Функция obje ct, который будет вызываться для каждого элемента в текущем наборе.


, где в качестве ссылки вы упомянули, относится к $.map, который возвращает массив

jQuery.map()

jQuery.map (массив, обратный вызов (elementOfArray, indexInArray))

массив Array для перевода.

callback (elementOfArray, indexInArray) Функция для обработки каждого элемента . Первым аргументом функции является элемент массива, Второй аргумент - это индекс в массиве. Функция может возвращать значение . Внутри функции это относится к глобальному (оконному) объекту.

Смежные вопросы