jQuery Odd:CSS还是jQ选择器?

时间:2012-02-08 12:37:02

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

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

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

每种方法有哪些优点和缺点?主要是在执行速度和浏览器支持方面存在疑问。

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

浏览器支持应该不是问题,因为jQuery在所有现代浏览器中运行良好:http://docs.jquery.com/Browser_Compatibility