2013-07-18 12 views
5

Yani, bir hipotetik soru (ve aynı soruyu içeren başka bir gönderi varsa bana bildirmekten çekinmeyin) (bir tane bile bulamadım)val() loop olasılıkları her bir()

Yani, .val() yöntemi, seçici tarafından eşleşen ilk öğenin geçerli değerini döndürür. Tüm eşleşen elemanların değerini almak ve bir dizi döndüren başka bir "shorthand" jquery yöntemi var mı?

Ya da sadece bunu güvenli am: Yukarıda belirttiğimiz gibi, ben bir şey baktı

var myResult = []; 
$(".myClass").each(function(){ 
    myResult.push($(this).val()); 
}); 

, ama sadece ben

cevap

9

Hayır, yoktur) (.each kullanmak zorunda olduğunu olabilir kestirme yok. Ancak, orada seninkinden daha kısa bir yöntemdir:

$.fn.getValAsArray = function(){ 
    return this.map(function(){ return this.value; }).get(); 
}; 

var myResult = $(".myClass").getValAsArray(); 

birkaç alternatifleri:

$.map

var myResult = $(".myClass").map(function(){ 
    return this.value; 
}).get(); 

ve gerçekten, kendi steno oluşturabilir istiyorsa

var myResult = $.map($.makeArray($(".myClass")),function(input){ 
    return input.value; 
}); 
// or 
var myResult = $.map($(".myClass").get(),function(input){ 
    return input.value; 
}); 

[].map

+0

Bu durumdan bahsetmeye değer, bu, bir dizi üzerinde çalışırken normal JavaScript'de de mümkündür ('.get'/aşırıya kaçmadan ve bir parametreyle). –

+2

+1 için '.map' ... –

+0

Ben buna 'vals()' derim ama tamam :) –