有人可以解释这个Jquery

时间:2012-09-07 23:44:37

标签: jquery

$(document).ready(function () {
    if ((screen.width >= 1024) && (screen.height >= 768)) {
        alert('Screen size: 1024x768 or larger');
        $("link[rel=stylesheet]:not(:first)").attr({
            href: "style2.css"
        });
    } else {
        alert('Screen size: less than 1024x768, 800x600 maybe?');
        $("link[rel=stylesheet]:not(:first)").attr({
            href: "style1.css"
        });
    }
});

我没有得到这个部分:$("link[rel=stylesheet]:not(:first)").attr

4 个答案:

答案 0 :(得分:3)

它会选择所有link个标记,这些标记具有名为rel的属性,其值为stylesheet,并且不是第一个标记。例如,如果你有:

<link rel="icon" />
<link rel="stylesheet" href="style2.css" />
<link rel="stylesheet" href="style3.css" />
<link rel="stylesheet" href="style4.css" />

选择器会选择最后两个link标签。为什么?因为排除第一个,因为rel属性的值不是stylesheet,而是icon;并且排除第二个,因为它是具有属性linkrel="stylesheet"过滤器的所有not(:first)第一个这一个。

答案 1 :(得分:1)

$("link[rel=stylesheet]:not(:first)").attr({href : "style1.css"});

将其分解成各个部分。在这种情况下,选择器将匹配任何<link>元素,其rel属性等于stylesheet,但它是:not:first)一个元素认定。什么时候发现Jquery附加一个href属性,该属性等于浏览器窗口大小的样式表... 呼吸

答案 2 :(得分:1)

link [rel = stylesheet] 会选择属性为 rel =“stylesheet”的所有标记

:not(:first)将过滤掉第一个

答案 3 :(得分:1)

这些是CSS选择器。在此特定示例中,正在选择其rel值为“样式表”的所有链接标记,但遇到的第一个标记将被省略。

以下内容非常适合处理选择器:

W3Schools参考:http://www.w3schools.com/cssref/css_selectors.asp

Nettuts文章:http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize/

相关问题