:nth типа () в jQuery / Шипение?

Меня удивило, что Шипение (селекторный механизм использование jQuery) идет со встроенным :nth-child() селектор, но недостает :nth-of-type() селектор.

Проиллюстрировать различие между :nth-child() и :nth-of-type() и проиллюстрировать проблему, рассмотрите следующий документ HTML:



 
  
  :nth-of-type() in Sizzle/jQuery?
  
 
 
  

The following CSS is applied to this document:

body p:nth-of-type(2n) { background: red; }

This is paragraph #1.

This is paragraph #2. (Should be matched.)

This is paragraph #3.

This is paragraph #4. (Should be matched.)

This is not a paragraph, but a div.

This is paragraph #5.

This is paragraph #6. (Should be matched.)

Так как Шипение использует собственный компонент браузера querySelector() и querySelectorAll() методы, если они присутствуют (т.е. в браузерах, которые уже реализуют API Селекторов), материал как $('body p:nth-child'); будет, конечно, работать. Это не будет работать в более старых браузерах, хотя, потому что Шипение не имеет никакого метода нейтрализации для этого селектора.

Действительно ли возможно легко добавить :nth-of-type() селектор, чтобы Шипеть или реализовать его в jQuery (при помощи встроенного :nth-child() селектор, возможно)? Пользовательский селектор с параметрами был бы хорош.

16
задан Mathias Bynens 20 January 2010 в 14:09
поделиться

2 ответа

Я не могу притворяться, что это реализуется Nth-of Type, но jQuery обеспечивает механизм, с помощью которого Вы можете создать свой собственный пользовательский селектор.

Следующие предъявляются с пользовательскими селекторами, и могут обеспечить полезную информацию для вас

, что полезные пользовательские селекторы jQuery вы написали?

1
ответ дан 30 November 2019 в 22:24
поделиться

плагин jQuery moreSelectors имеет поддержку nth-of-type (и многих других селекторов). Я предлагаю либо использовать это, либо просто реализовать простой плагин, который реализует только те селекторы, которые вам нужны. Оттуда вы сможете копировать и вставлять код.

Счастливого взлома!

4
ответ дан 30 November 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: