jQuery,如何找到对象数组的最大宽度?

时间:2012-01-23 15:12:43

标签: javascript jquery

所以,这就是我认为可行的方法:

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 = /

3 个答案:

答案 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();}));