jQuery检查元素是否存在

jQuery check if element exists

本问题已经有最佳答案,请猛点这里访问。

如何修改下面的脚本,以便在DOM中不存在".fixit"元素时不会抛出错误?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function fixedHeaders() {
       var el = jQuery('.fixit'),
           offset = el.offset(),
           elHeight = el.height(),
           scrollTop = jQuery(window).scrollTop()
           if (((offset.top + 400) < scrollTop - el.height())) {
               el.addClass('fixedElement');
           }

       if (scrollTop === 0) {
           el.removeClass('fixedElement');
       }
}
jQuery(function() {
   jQuery(window)
       .scroll(fixedHeaders)
       .trigger("scroll");
});


从...开始

1
if (!jQuery('.fixit').length) return;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if ($('.fixit').length) {

     var el = jQuery('.fixit'),
           offset = el.offset(),
           elHeight = el.height(),
           scrollTop = jQuery(window).scrollTop()
           if (((offset.top + 400) < scrollTop - el.height())) {
               el.addClass('fixedElement');
           }

       if (scrollTop === 0) {
           el.removeClass('fixedElement');
       }

}