如果多个页面均引用一个JS文件,里面包含$(document).ready(function(){
var div1 = $('#div1');
});但是并非所有引用的页面里面都包含有ID为div1的元素,如果这些页面在载入完后执行上述代码时会造成JS出错嘛?
虽然正常使用的时候好像并没有发现什么问题,但是心理总是不太舒服,望高人解答下我的疑问。

解决方案 »

  1.   

    JQ返回的是一个JQ数组,如果当前ID不存在,那么返回一个长度为0的数组,不会报错
    你可以通过 $('#div1').length  判断对象是否存在
      

  2.   

    不会出错,没有找到指定id的元素时返回的是一个空对象。你自己明白引用的外部JS文件的作用并且能确保不会出现变量冲突就可以了。
      

  3.   


    就是说即使我不主动判断ID是否存在,直接var div1 = $('#div1');的情况下div1为空也不会出错是吧?
      

  4.   

    var div1 = $('#div1');   div1是一个数组   长度为0表示对象不存在  不会报错
    刚才说的不对   返回的是DOM对象数组