【问题标题】:return biggest/highest object from jquery elements从 jquery 元素返回最大/最高的对象
【发布时间】:2012-10-30 15:06:16
【问题描述】:

你好!

我们来看看下面的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

更新

正如Amareswar 所说,我现在使用$.makeArray 管理它。

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

干杯!

【问题讨论】:

  • 你还没有问过问题……只是提供了一些没有意义的代码
  • 'return this' 作为最后一条语句
  • @charlietfl 添加了 how? ;-)
  • @Amareswar return this,不成功。
  • 在这种情况下,您应该通过将元素作为参数传递来编写像 $.makeArray 这样的静态函数。

标签: javascript jquery size height


【解决方案1】:

试试这个:

$.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/

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

【讨论】:

  • 不错的方法,但我现在像 Amareswar 所说的那样管理它。不过,谢谢! :-*
猜你喜欢
  • 1970-01-01
  • 2015-06-23
  • 1970-01-01
  • 2022-01-11
  • 2015-05-01
  • 2014-09-14
  • 2015-09-25
  • 2013-09-28
  • 2013-05-06
相关资源
最近更新 更多