这是一个假设性的问题(如果有另一篇帖子有同样的问题,请随时告诉我 - 虽然我找不到一个)但
因此,.val()方法返回选择器匹配的第一个元素的当前值。是否有另一个“速记”jquery方法获取所有匹配元素的值并返回一个数组?
或者我这样做最安全:
var myResult = [];
$(".myClass").each(function(){
myResult.push($(this).val());
});
正如我上面所说,我寻找的东西,但可能只是我必须使用.each()
答案 0 :(得分:9)
不,没有速记。但是,方法比你的方法更短:
var myResult = $(".myClass").map(function(){
return this.value;
}).get();
如果你真的想,你可以创建自己的速记:
$.fn.getValAsArray = function(){
return this.map(function(){ return this.value; }).get();
};
var myResult = $(".myClass").getValAsArray();
还有其他几种选择:
$.map
var myResult = $.map($.makeArray($(".myClass")),function(input){
return input.value;
});
// or
var myResult = $.map($(".myClass").get(),function(input){
return input.value;
});
[].map
var myResult = $.makeArray($(".myClass")).map(function(input){
return input.value;
});
// or
var myResult = $(".myClass").get().map(function(input){
return input.value;
});