Движок селектора jQuery использует почти тот же синтаксис, что и CSS, фактически расширяет стандарт селектора. Это означает, что вы можете передать большинство допустимых CSS-селекторов (с некоторыми исключениями ) в jQuery, и он отлично с ними справится.
jQuery оптимизирует действительные селекторы CSS для современных браузеров, которые поддерживают API селекторов, передавая их непосредственно document.querySelectorAll()
. Это означает, что ваш селектор jQuery будет иметь почти равную производительность с эквивалентным селектором CSS, с единственными накладными расходами - $().css()
и вызовами API селекторов.
Для браузеров, которые не поддерживают API селекторов, вполне очевидно, что jQuery будет работать очень медленно, поскольку он должен выполнять всю тяжелую работу самостоятельно. Что еще более важно, он просто потерпит неудачу в исключениях, на которые я ссылаюсь выше, а также в других селекторах CSS, которые не поддерживает браузер.
Однако, с учетом всего сказанного, jQuery будет неизменно медленнее, так как браузер должен запустить скрипт и оценить его, прежде чем появится возможность применить и вычислить ваши стили.
И после всего этого, честно говоря, это немного, даже если у вас было сотни элементов - скорее всего, браузеру потребуется больше времени для получения разметки, чем для отображения стилей. Если вам нужно делать стили, и CSS поддерживает это, почему бы не использовать CSS? Вот почему язык был создан в первую очередь.