document.styleSheets 数组保存有页面中的每个 style 标记在这个代码中,有 3 个 style 标记,他们都是对 body 的背景和前景进行设置
ssEnable 函数的作用是使指定的样式生效,因为有 3 个,所以要循环
循环中实际只做了一件事:如果不是指定的样式,就将其关闭,否则打开
oldSheet 的作用是保护现场,如果指定的样式不存在,就恢复现场

解决方案 »

  1.   

    版主你好,
    是不是在循环中,遇到document.styleSheets[i].title == mySheet这一句是真,就会跳出for循环是不是? 例如我输入“sheet2”,那么它第一次循环检测将跳过这个if,第二次循环document.styleSheets[1i].title == sheet2,是不是就跳出了循环。不再继续for了?
       if(document.styleSheets[i].title == mySheet)
                {
                    document.styleSheets[i].disabled = false;
                    change = true;
                } 
      

  2.   

    不是,你在循环中并没有看到 break 语句,所以循环不会提前结束disabled 属性表示禁用,等于 false 就是解禁了
      

  3.   

    if(document.styleSheets[i].disabled == false) 检查第 i 个是否是当前在用的
    if(document.styleSheets[i].title == mySheet) 检查第 i个是否是准备使用的不是第一个而是第三个
    body{
        background-color: pink;
        color : green;
     }
     </style>
    粉红背景,绿字样式表是后到的覆盖先来的