本帖最后由 ahking 于 2013-03-05 14:33:22 编辑

解决方案 »

  1.   

    你之前的obj指向这个
     var obj = document.getElementById(id);
    现在指向这个,也就是他的父元素
    while (obj = obj.offsetParent) 上面相当于重置obj为父元素
    obj等于他的父元素肯定不成立
      

  2.   

    ..=是赋值  ==是判断  obj == obj.offsetParent肯定是false 当然不执行~
      

  3.   

    =是复值 如果obj.offsetLeft不为空 while里的值永远都是ture
      

  4.   

    obj.offsetLeft不为空 
    这个条件是有点问题,我可以换成父对象不为空吧。
      

  5.   

    while (obj = obj.offsetParent)
    这句代码不是单纯的比较或者赋值。它分为两步,第一步是将obj.offsetParent赋值给obj,第二步则是判断obj是否为空。在while或者if的条件里,这样的用法还是挺常见的。如果把=换成==,则变成了仅仅判断obj是否是obj的父元素,显然不是。