Каков наилучший способ получить атрибут данных набора узлов в массиве в jQuery?

#javascript #jquery

#javascript #jquery

Вопрос:

Каков наилучший способ получить атрибут данных набора узлов в массиве в jQuery?

У меня этот синтаксис работает:

 var ids = $("a.some_class").map(function(index, item) {return item.getAttribute('data-id');});
 

Есть ли какой-нибудь более простой синтаксис для этого?

Спасибо

Ответ №1:

Нет ничего проще, чем ваш map подход, но data метод with get поможет выполнить все в кроссбраузерном режиме и вернуть чистый массив JavaScript:

 var data = $('a.some_class').map(function() {
    return $(this).data('id');
}).get();
 

Комментарии:

1. Чем отличаются данные, если вы используете или не используете .get() ? Спасибо

2. @ZackXu .get() преобразует объект, возвращенный из jQuery .map() , в обычный массив JavaScript, так что вы сможете работать с ним как с простым массивом.

Ответ №2:

Попробуйте

.данные (ключ)

 var ids = $("a.some_class").map(function() {
    return $(this).data('id'); //or return this.getAttribute('data-id');
}).get();