jQuery Нечетный: селектор CSS или jQ? - PullRequest
1 голос
/ 08 февраля 2012

Существует два простых способа выбора нечетных строк в таблице с помощью jQuery с использованием фильтра :odd или селектора :nth-child(odd);

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

Каковы преимущества и недостатки каждого метода?В основном интересуются скоростью исполнения и поддержкой браузера.

Ответы [ 2 ]

3 голосов
/ 08 февраля 2012

Первый метод с .filter(':odd'), скорее всего, медленнее, потому что он использует дополнительный вызов метода и использует нестандартный селектор.В этом случае jQuery должен обрабатывать все.

Второй метод потенциально будет более быстрым в современных браузерах, которые реализуют API селекторов и поддерживают псевдокласс :nth-child(), поскольку данный селектор является допустимым CSS, поэтомуСелектор будет оцениваться современным механизмом выбора браузера, а не jQuery.В других браузерах, однако, я понятия не имею, но я бы все-таки сделал ставку на то, что второй метод является чуть более эффективным, потому что есть как минимум на один вызов меньше метода.

В любом случае, нетреальная (практическая) выгода или недостаток любого из методов. На самом деле, я только отвечаю теоретически - у меня нет никаких критериев, чтобы что-либо подкрепить.Также не нужно беспокоиться о совместимости браузера, поскольку jQuery в любом случае полностью заполняет селектор :nth-child() для старых браузеров.

1 голос
/ 08 февраля 2012

Поддержка браузера не должна быть проблемой, так как jQuery хорошо работает во всех современных браузерах: http://docs.jquery.com/Browser_Compatibility

...