2016-11-07 4 views
2

У меня есть несколько флажков, и эти элементы содержат настраиваемый атрибут с именем data-id. Например:Получите массив значений пользовательских атрибутов, выбрав класс и проверив флажок

<input class="testCheckbox" icheck="" ng-model="Model" data-id="57e3"type="checkbox"> 

Я хочу получить массив идентификаторов, найдя его по имени и типу элемента. В настоящее время у меня есть что-то вроде этого, и она работает:

var testIds = []; 
$('input.testCheckbox[type="checkbox"]:checked').each(function() { 
    testIds.push($(this).attr("data-id")) 
}); 

мне интересно, если есть встроенная функция в JQuery, которая может возвращать один и тот же результат? Я пробовал с этим кодом, но он только возвращает первое значение:

console.log($('input.testCheckbox[type="checkbox"]:checked').attr("data-id")); 

Я не знаю, что я делаю неправильно? С наилучшими пожеланиями.

+0

друг без друга или карты вы не можете сделать это. он вернет только первое значение – Mahi

ответ

2

Там нет встроенных функций, чтобы сделать это, но вы можете сократить свой код, используя map() вместо:

var testIds = $('input.testCheckbox[type="checkbox"]:checked').map(function() { 
    return $(this).data('id'); 
}).get(); 
+0

. Какая польза от метода get? – Mahi

+1

Он возвращает базовый массив напрямую, вместо того, чтобы его обернуть в объект jQuery. См. Http://api.jquery.com/get для получения дополнительной информации –

+0

, как мы узнаем, какой метод get это? В jquery также есть метод get .. https://api.jquery.com/jquery.get/ – Mahi

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