查找最长的元素(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”类。