2
$(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

4 回答 4

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;并排除第二个,因为它是所有具有属性的 s 中的第一个,并将这个过滤掉。linkrel="stylesheet"not(:first)

于 2012-09-07T23:47:41.967 回答
1
$("link[rel=stylesheet]:not(:first)").attr({href : "style1.css"});

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

于 2012-09-07T23:48:52.077 回答
1

link[rel=stylesheet]将选择所有带有rel="stylesheet"属性的标签

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

于 2012-09-07T23:49:22.600 回答
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/

于 2012-09-07T23:52:52.470 回答