2013-10-02 2 views
0

У меня есть куча текстовых полей ввода, которые находятся в одном классе emps_l с разными значениями. Я хочу перебрать все элементы с этим классом и сохранить значения в массиве! Беллоу, что я сделал:Как получить значения всех элементов с тем же классом

var emps = new Array();  
$.each(($(".emps_l").val()),function()({   
     emps.push($(".emps_l").val());   
}); 
console.log(emps); 

Я полностью потерял, Любая помощь будет высоко ценится!

+0

Большинство геттерных функций JQuery действует только на первый элементе (так возвращает одно значение). Выполнение '$ (". Emps_l "). Val()' возвращает значение первого элемента в DOM с классом 'emps_l', тогда как выполнение' $ (". Emps_l"). Val (1); 'будет установите значение каждого элемента с классом 'emps_l' равным 1, а затем верните этот объект jQuery. –

ответ

1
var emps = []; // This is considered slightly faster than new array 

$('.emps_1').each(function(){ 
    emps.push(this.value); 
}); 

console.log(emps); 
+1

Может просто использовать 'this.value', а не' $ (this) .val() '. Сохраняет (без необходимости) вызов функций jQuery и проще или быстрее печатать. –

+0

@ AnthonyGrist: Хорошая точка - я обновлю –

4

Вы можете использовать .map() вместе с this.value для создания массива

var emps = $(".emps_l").map(function() { 
    return this.value 
}).get() 
+0

@downvoter я пропустил что-нибудь –

1

использовать это:

var emps = new Array();  
$.each(($(".emps_l:input").val()),function(index , item)({   
     emps.push($(item).val());   
}); 
console.log(emps); 
Смежные вопросы