jQuery在'each'中包含隐藏的div

时间:2012-12-27 00:32:15

标签: jquery

我需要找到一种方法,在下面的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);

2 个答案:

答案 0 :(得分:8)

$('div')         finds all divs
$('div:hidden')  finds only hidden divs
$('div:visible') finds only visible divs

答案 1 :(得分: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();
});