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