Если вы обнаружите, что Sizzle / jQuery не может применить ваш селектор CSS3, возможно, лучше использовать плагин XPath , который был частью оригинальной версии jQuery (а затем удален, так как мало кто на самом деле использовал Это).
Реализация XPath в браузерах имеет тенденцию быть намного быстрее , чем движки CSS. Кроме того, JS-анализ и преобразование выражения XPath в CSS3, а затем jQuery munge - это то, что браузер может реализовать (как правило, селекторы CSS2.1 с небольшой помощью JS) будет на намного медленнее, чем выполнение XPath прямо в браузере.
Не только это, но есть вещи, которые XPath может делать, чего не может CSS. Например:
//h3[class="blog-title"]/../../div[class="blog-entry"]//input[fn:floor(value) > 3]
который не слишком сложен для выполнения XPath, но невозможен только для CSS - перемещение обратно вверх по DOM и выполнение функции как части выражения пока не может (насколько мне известно) сделать даже в CSS3.