【问题标题】::not and :first in jquery:not 和 :first 在 jquery
【发布时间】:2012-06-24 13:07:41
【问题描述】:

我有一个 jQuery 脚本来找出浏览器的分辨率,然后更改它的 css。

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

你能帮我了解一下它的实际功能吗?

:not(:first) 是什么意思?请解释一下。

谢谢。

【问题讨论】:

  • 你为什么不用media queries?如果是因为需要支持old browsers,有workarounds
  • 你看过API:first:not()吗?
  • :gt(0),使用greater-than selector
  • 不要给我那些关于谷歌搜索的废话。我在 Google 中输入了jquery :not(:first)verbatim,甚至在我完成之前,该死的 autocomplete 就给了我信息。 jquery first not 在两个选择器上都显示了文档。
  • 想想“不”和“第一”这两个词的含义。考虑到这些是您在日常写作中使用的词汇,这并不难。

标签: javascript jquery html css jquery-selectors


【解决方案1】:

实际上,这意味着您选择每个link 元素,其属性为rel,匹配单词stylesheet,但排除第一个找到的结果:)

因此,如果您在容器中有三个元素并尝试使用 :not(:first) 选择它们,您将收到第二个和第三个,但排除第一个 (!) 个

不确定这是否是您想要的...但是如果您在标头中有多个链接属性并且除第一个之外的所有属性都设置为该 href 您可能(!)最终请求/检查 CSS服务器/缓存多次

媒体查询(thirtydot的评论)也是个好主意(评论+1)

【讨论】:

    【解决方案2】:

    尝试使用交互式控制台,例如 Chrome 的检查器中的控制台或 Firefox 中的 Firebug。只需输入$("link[rel=stylesheet]:not(:first)") 并查看是否有匹配的元素。

    编辑:Thirtydot 关于使用媒体查询的评论也是一个很好的评论,如果您要拥有多个样式表,this article 可能会有一些有用的信息。

    【讨论】:

    • 嗨 Cecchi,这是一个很好的建议:“试试看”,但我不确定它是否真的回答了这个问题。虽然它会做出有用的评论,但发布的答案应该回答这个问题,因为 StackOverflow 的目标是成为未来几年的知识资源。此外,在发布链接时,包含资源摘要以突出链接中最重要的点/主要思想会很有帮助。如果链接断开,答案将毫无用处。考虑创建edit 以包含来自解决问题的链接的信息。
    • [cont'd] - 通过包含来自可以回答问题的链接的信息,您还可以证明在答案中留下您的评论是有帮助的。祝你好运! :)
    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 2022-12-26
    • 1970-01-01
    相关资源
    最近更新 更多