var imgs=document.images; //获取网页的所有图片
for(n in imgs)   //遍历图片数组
{
   if(imgs[n]==imgs.length)   //忽略第一个元素,因为其不是图片对象
   {
     continue;
   }
   imags[n].style.visibility=hidden;  //设置图片的可视状态}我想问的是:第三行注释为什么说”忽略第一个元素,因为其不是图片对象“,这个如何解释?

解决方案 »

  1.   

    for in循环遍历对象属性document.images是一个数组对象,在ie中,数组对象除了0...n之外,还有能遍历出一个特殊属性length。所以加出来的代码就是为了将其屏蔽。另外,在ie上虽然只有一个length属性。但是在其他浏览器上,不止length一个属性。比如chrome上有length,还有item和namedItem两个属性。所以上面的代码并不能做到全浏览器兼容。建议直接用一般的for循环遍历。
      

  2.   

    document.images返回的数组对象除了有0,1,2,等属性意外,还有一个length属性,因为对象属性也可以用[]这个访问符号所以看起来有点绕。这句代码imgs[n]==imgs.length表示的意思其实是imgs[length]==imgs.length;
      

  3.   

    可能是最后一个img,是统计系统用的,就可以忽略过去了
      

  4.   

    if(imgs[n]==imgs.length) //忽略第一个元素,因为其不是图片对象
      {
      continue;
      }
    这句话没有起作用,去掉也可以,因为是contiune不是break更多基础知识http://www.204080.com
      

  5.   

    上面说的已经很到位了,给你一个小提示如果说不知道n是什么,你就alert(n);alert(imgs[n]);你这样看看到底是什么东西
      

  6.   

    推荐使用这样的循环
    for(i=0;i<imgs.length;i++)