【问题标题】:jQuery Odd: CSS or jQ selector?jQuery Odd:CSS 还是 jQ 选择器?
【发布时间】:2012-02-29 21:28:46
【问题描述】:

使用 jQuery 选择表中的奇数行有两种简单的方法,使用 :odd 过滤器或 :nth-child(odd) 选择器;

$('table tr').filter(':odd')
$('table tr:nth-child(odd)')

每种方法的优缺点是什么?主要是在执行速度和浏览器支持方面的疑惑。

【问题讨论】:

    标签: jquery css jquery-selectors filter css-selectors


    【解决方案1】:

    .filter(':odd') 的第一个方法很可能更慢,因为它使用了额外的方法调用并且使用了非标准选择器。在这种情况下,jQuery 必须处理所有事情。

    第二种方法在实现 Selectors API 并支持 :nth-child() 伪类的现代浏览器中可能会更快,因为您给定的选择器是有效的 CSS,因此选择器将由现代浏览器的选择器引擎评估,而不是jQuery。不过,在其他浏览器中,我不知道,但我仍然打赌第二种方法会更高效,因为至少少了一个方法调用。

    无论哪种方式,这两种方法都没有真正的(实际)优点或缺点。事实上,我只是在理论上回答——我真的没有任何基准来支持任何东西。也无需担心浏览器兼容性,因为 jQuery 为旧版浏览器填充了 :nth-child() 选择器。

    【讨论】:

    • 谢谢,如果浏览器不支持,我不确定 jQuery 是否会处理选择器。出于兴趣,您是否有指向该来源的链接? :)
    • @Joe: 都在首页了 :)
    【解决方案2】:

    浏览器支持应该不是问题,因为 jQuery 在所有现代浏览器中都能正常工作:http://docs.jquery.com/Browser_Compatibility

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-06
      • 2011-05-14
      • 2011-11-17
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-15
      相关资源
      最近更新 更多