所以有点假设性的问题(如果有另一篇文章有同样的问题,请不要犹豫,让我知道 - 虽然我没有找到)
因此,.val() 方法返回与选择器匹配的第一个元素的当前值。是否有另一种“速记”jquery 方法获取所有匹配元素的值并返回一个数组?
或者我这样做最安全吗:
var myResult = [];
$(".myClass").each(function(){
myResult.push($(this).val());
});
正如我上面所说,我正在寻找一些东西,但可能只是我必须使用 .each()
不,没有速记。但是,有一个比您的方法更短的方法:
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;
});