4

我需要找到一种在each下面的语句中包含隐藏 div 的方法。我似乎找不到答案。它不仅适用于隐藏元素的孩子,所以我无法根据display:none

$("div").each(function(){
    if ($(this).hasScrollBar()){
        $(this).addClass('scrollable');
    }
});

hasScrollBar 功能:

(function($) {
    $.fn.hasScrollBar = function() {
        return this.get(0).scrollHeight > this.innerHeight();
    }
})(jQuery);
4

2 回答 2

8
$('div')         finds all divs
$('div:hidden')  finds only hidden divs
$('div:visible') finds only visible divs
于 2012-12-27T00:34:23.863 回答
0

您似乎正在尝试识别所有显示时需要滚动条的元素。一种方法是克隆元素,将其渲染到屏幕外,然后确定它是否需要滚动条。

$("div").each(function(){
    var clone = $(this).clone();
    clone.show()
         .css('position','fixed')
         .css('left','-10000000');
    $(document).append(clone);
    if (clone.hasScrollBar()){
        $(this).addClass('scrollable');
    }
    clone.remove();
});
于 2012-12-27T00:58:30.067 回答