从jquery元素返回最大/最高对象

时间:2012-11-10 13:45:05

标签: javascript jquery size height

Howdey!

让我们看看下面的jQuery函数:

$.fn.getMax = function() {
    return this.height(Math.max.apply(this, $(this).map(function(i, e) {
        return $(e).height();
    }).get()));
};

它返回并设置所有选择器的最高高度。但是,如果你想以最高的价值返回object(而不是高度)呢?

所以如果你这样调用函数:

$(selector).getMax().css({backgroundColor: "indigo"});

......具有最高高度的元素如何获得backgroundColor

更新

我已经使用$.makeArray进行了管理,正如Amareswar所说的那样。

$.fn.getMax = function(prop) {
    var max = $.makeArray($(this)).sort(function(a, b) {
        return (parseInt($(b).css(prop), 10) || 1) - (parseInt($(a).css(prop), 10) || 1);
    }).shift();
    return $(max);
};

干杯!

1 个答案:

答案 0 :(得分:0)

试试这个:

$.fn.getMax = function() {
     /* create array of heights*/
    var heights = $(this).map(function(i, e) {
        return $(e).height();
    }).get();
    /* get max height*/
    var max = Math.max.apply(this, heights);
    /* get index of max in array*/
    var pos = $.inArray(max, heights)
    /* return element with proper index*/
    return this.eq(pos);
};

DEMO:http://jsfiddle.net/tTuE7/

编辑:假设您只想要返回一个元素