所以,这就是我认为可行的方法:
Math.max($j.map($j.makeArray($j(".rl_shell")), function(val, i){
$j(val).width();
}));
击穿:
$j.isArray($j.makeArray($j(".rl_shell")))
返回true
当我做的时候
$j.map($j.makeArray($j(".rl_shell")), function(val, i){
$j(val).width();
})
我得到一个空数组([]
)。
$j(".rl_shell")
返回[div,div]
所以,我猜,我使用的地图不对,但我在这里使用了语法: http://api.jquery.com/jQuery.map/所以我不确定这笔交易是什么。
编辑:
根据答案的几点建议,我想出了这个:
$j.map($j.makeArray($j(".rl_shell")), function(val, i){
return $j(val).width();
});
返回[0,950]
但是当我在它周围添加Math.max时,我得到NaN
= /
答案 0 :(得分:4)
您想要获得所有选定元素中最宽的元素吗?
Math.max.apply(Math, $('selector').map(function(){
return $(this).width();
}).get());
答案 1 :(得分:2)
您忘记return
回调中的map
:
Math.max($j.map($j.makeArray($j(".rl_shell")), function(val, i){
return $j(val).width();
}));
答案 2 :(得分:2)
除了你错过了return
回调的map
,
您应该使用Math.max.apply(window, arr)
来获取数组的最大值。
直接将数组传递给Math.max
将返回NaN
。
代码如下:
Math.max.apply(window, $.map($('.rl_shell'), function() {return $(this).width();}));