0

你好!

让我们看一下下面的 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);
};

干杯!

4

1 回答 1

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);
};

演示:http: //jsfiddle.net/tTuE7/

编辑:假设您只希望返回一个元素

于 2012-11-10T14:21:51.917 回答