Показать сообщение отдельно
  #14 (permalink)  
Старый 29.05.2014, 13:58
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

Сообщение от Aetae Посмотреть сообщение
Sweet,
Нет. Если смотреть абстрактно:
$("div.b").eq(1) - взять все элементы с классом "div.b", вернуть второй из них.
$("div.b:eq(1)") - взять элемент имеющий класс "div.b" и идущий вторым.

Соответственно второе должно выполнятся как минимум не медленнее первого.
Почему же реальность так несовершенна - вопрос к авторам jq.)
С точки зрения jQuery ваши определения равнозначны, тк второй вариант это сахар для первого (и забегая вперед, он не может быть ни при каких условиях быть быстрее первого именно по этой причине)

Цитата:
Because :eq() is a jQuery extension and not part of the CSS specification, queries using :eq() cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. For better performance in modern browsers, use $("your-pure-css-selector").eq(index) instead.
http://api.jquery.com/eq-selector/

А вот с точки зрения браузера, если бы это был нативный селектор, ваше определение в корне неправильное.
Определение в таком случае должно было быть такое: "Выбрать все элементы идущие вторыми. Из этих элементов выбрать с классом b и тегом div".

Последний раз редактировалось WorM32, 29.05.2014 в 14:02.
Ответить с цитированием