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);
};
干杯!
答案 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/
编辑:假设您只想要返回一个元素