查找最长的元素(jQuery)

查找最长的元素(jQuery),jquery,height,addclass,Jquery,Height,Addclass,我使用此脚本来均衡元素的高度: (function ($) { $.fn.autoheight = function () { var height = 0, reset = $.browser.msie ? "1%" : "auto"; return this.css("height", reset).each(function () { height = Math.max(height, this.off

我使用此脚本来均衡元素的高度:

(function ($) {
    $.fn.autoheight = function () {
        var height = 0,
            reset = $.browser.msie ? "1%" : "auto";
        return this.css("height", reset).each(function () {
            height = Math.max(height, this.offsetHeight);
        }).css("height", height).each(function () {
            var h = this.offsetHeight;
            if (h > height) {
                $(this).css("height", height - (h - height));
            };
        });
    };
})(jQuery);
我只想给它添加一个额外的功能——将类“longest”添加到均衡高度时发现的最长元素中,我在上面的脚本中做了哪些更改


非常感谢。

我记得在这个网站上绊倒过。这有用吗?


读10号。高度相等的列。

考虑这段伪代码,因为它没有经过测试(甚至没有运行)。内部代码已更改//新代码注释

(function ($) {
    $.fn.autoheight = function () {
        var height = 0,
            highest = 0, //new code
            reset = $.browser.msie ? "1%" : "auto";
        return this.css("height", reset).each(function () {
            height = Math.max(height, this.offsetHeight);
            //new code
            if (height > highest) {
              highest = height;
              $("*").removeClass("longest");
              $(this).addClass("longest"); 
            };
            //new code
        }).css("height", height).each(function () {
            var h = this.offsetHeight;
            if (h > height) {
                $(this).css("height", height - (h - height));
            };
        });
    };
})(jQuery);

史蒂夫·克拉里奇(Steve Claridge)的上述解决方案你说不起作用——对我来说效果很好;(仅在铬中测试)

虽然使用

 $("*")

在一个大DOM中,选择器有点低效,考虑在可能的情况下向DIV添加一个类,如果可能的话使用一个更具体的选择器。

 $(".foo") 

这是关于平衡身高,所以“最长”更合适,“最高”或“最高”或“最大”更合适。宽度->最宽,高度->最高/最高,长度->最长。不,我正在使用的是完美的,我只需要将类添加到最高的元素。刚刚检查了Alex的JSFIDLE示例,它似乎工作正常。您可以使用Firebug检查结果DOM,并看到一个div添加了“longest”类。