Меня удивило, что Шипение (селекторный механизм использование 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()
селектор, возможно)? Пользовательский селектор с параметрами был бы хорош.
Я не могу притворяться, что это реализуется Nth-of Type, но jQuery обеспечивает механизм, с помощью которого Вы можете создать свой собственный пользовательский селектор.
Следующие предъявляются с пользовательскими селекторами, и могут обеспечить полезную информацию для вас
, что полезные пользовательские селекторы jQuery вы написали?
плагин jQuery moreSelectors имеет поддержку nth-of-type (и многих других селекторов). Я предлагаю либо использовать это, либо просто реализовать простой плагин, который реализует только те селекторы, которые вам нужны. Оттуда вы сможете копировать и вставлять код.
Счастливого взлома!