document.styleSheets contains all style sheets in the document, whether they're embedded or
linked. Take this bit of HTML:
<head>
<link type="text/css" rel="stylesheet" href="main.css" />
<link type="text/css" rel="stylesheet" href="colors.css" />
<style type="text/css">
.specialCase {
color: #cc0000;
}
</style>
</head>for (var i=0;i<sheets.length;i++) {
var ssName = sheets[i].href.substring(sheets[i].href.lastIndexOf('/')+1);
if (ssName == 'colors.css')
var currentSheet = sheets[i];
}
if (!currentSheet) return;/*我不明白,sheets[i].href 指的是 main.css 或 colors.css 吧,那个斜线 /  不包括在其中吧?
sheets[i].href.lastIndexOf('/')+1 指的是哪 个字符串的哪 个位置?请高手示我,谢谢。

解决方案 »

  1.   

    如果是http://bbs.csdn.net/main.css,那么还是取的main.css,就是确保取得css文件的文件名及后缀,使代码通用性增强了
      

  2.   

    lastIndexOf方法返回子字符串最后一次出现的位置(包括此位置)
    这里的sheets数组得到的是链接调用css属性,这里就是main.css和colors.css
    所以sheets[i].href得到的是两个css所在路径,比如c:/xxxx/xxxx/main.css  xxx是目录名
    所以这里sheets[i].href.lastIndexOf('/')+1 得到的就是最后一个/位置+1的位置substring()这个位置以后的字符,就得到了main.css,或者colors.css
    不知这样说明白否
      

  3.   

    在这里感觉sheets[i].href.lastIndexOf('/')返回的是-1,不知道大家怎么看?
      

  4.   

    sheets[i].href得到的是两个css所在路径,比如c:/xxxx/xxxx/main.css  xxx是目录名 
    ----谢谢2楼BeenZ的明示。原来我以为  lastIndexOf('/')+ 中的 / 指的是 <link type="text/css" rel="stylesheet" href="main.css" /> 中的最后一个 / 呢,这样理解是完全错误的。
      

  5.   

    在这里感觉sheets[i].href.lastIndexOf('/')返回的是-1,不知道大家怎么看?