2012-11-10 62 views
0

Howdey!返回來自jquery元素的最大/最高對象

讓我們來看看下面的jQuery函數:

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

它返回,併爲所有選擇的heighest高度。但是,如果你想返回最高值的object(而不是高度)?

所以,如果你喜歡這樣的功能:

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

...與heighest高度元素如何獲取backgroundColor

UPDATE

我和$.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); 
}; 

乾杯!

+0

你還沒有問一個問題...只是提供了一些代碼,使無sense – charlietfl

+0

'return this'作爲最後一條語句 – Amareswar

+0

@charlietfl添加了'how'和'?';-) – yckart

回答

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/

編輯:假設你只想要一個元素返回

+0

不錯的方法,但我現在就像Amareswar說的那樣管理它。但是,謝謝! : - * – yckart