Comments 38
Вот примерно с таким селектором у меня возникли проблемы:
$('ul.one li:step(3)').css('clear','left');
В таком виде оно работает, не понял в чём у вас возникла проблема?
0
Чёрт! Это же перевод :D
+2
Каюсь, в оригинале есть еще пару абзацев про эту проблему, но я не до конца понял смысл.
0
Да проверил — все работает правильно.
0
Проблема не в том как работает, а в том как выбираются селекторы. jQquery очень оптимизирован в этом отношении и при любом удобном случае использует нативные функции браузера для более быстрой выборки (getElementById к примеру). Но в случае с классами, как я понял, используется рекурсивная выбрка (возможно я не правильно понял), или как-то так. И это, судя по всему является не очень оптимальным с использованием «кастомных» селекторов.
Может кто-то расскажет подробнее об особенностях обхода DOM в jquery в различных условиях?
Может кто-то расскажет подробнее об особенностях обхода DOM в jquery в различных условиях?
+1
$('div:eq(N)'); // выбираем div идущим под номером N в DOMe
$('div:gt(N)'); // выбираем div'ы, индекс которых больше чем N в DOMe
$('div:lt(N)'); // выбираем div'ы, индекс которых меньше чем N в DOMe
Не? или я не так понял смысл поста?
$('div:gt(N)'); // выбираем div'ы, индекс которых больше чем N в DOMe
$('div:lt(N)'); // выбираем div'ы, индекс которых меньше чем N в DOMe
Не? или я не так понял смысл поста?
0
не поняли. Нужно выбрать, все числа, делящиеся на 4, к примеру. Вы предлагаете писать как:
$('div:eq(N)');
$('div:eq(N)');
0
В конце поста есть ссылка на раздел API — где задача поставленная автором решается встроенными средствами jQuery.
И также в конце поста есть ответ автора на вопрос: зачем огород городить в этом случае.
Впрочем он и в самом начале пишет, что это статья — обучающий пример.
И также в конце поста есть ответ автора на вопрос: зачем огород городить в этом случае.
Впрочем он и в самом начале пишет, что это статья — обучающий пример.
0
Ну, каждый N-й элемент можно выбирать при помощи nth-child: $('li:nth-child(3n)') — каждый третий. Каждый третий, начиная с пятого: $('li:nth-child(3n+5)')
0
что за привычка использовать в JS $i, $n и т.д.? Я понимаю что работает, но зачем, если это изначально неправильно…
-2
php style? :D
-2
Лично я использую $ для отличия jQuery объектов от чистого JS:
var i = 0;
var $element = $('.red');
var i = 0;
var $element = $('.red');
+6
В этом нет ничего не правильного. Может неудобно, непонятно, непривычно (сам не одобряю), но неправильным это никак не назвать. Конвенции != правила.
0
Это не может быть неправильным. Кто сказал что это неправильно? Все относительно в этом мире. Для кого-то стакан на половину пуст, а для кого-то на половину полон…
-2
Я встретил эту рекомендацию в книге по jquery 1.3. Советуют использовать, когда переменная представляет объект jquery. Вероятно, в других книгах эта рекомендация тоже есть.
0
Для этого есть отличный css3 :nth-child.
Можно выбрать каждый третий исключительно css-сом вот так:
$('li:nth-child(3n)');
Можно выбрать каждый третий исключительно css-сом вот так:
$('li:nth-child(3n)');
+5
можно конечно и вашим способом применять, но есть довольно интересный плагин
selectivizr.com/
Очень много функционала добавляется для любимых ишаков. Облегчает процесс верстки
selectivizr.com/
Очень много функционала добавляется для любимых ишаков. Облегчает процесс верстки
+1
как я видел, селективизер это не совсем то… это добавка css3 селекторов к интернет експлореру, там где они не поддерживаются. но они не поддерживаются только в css.
если использовать их в селекторе js, то они будут работать на ура
если использовать их в селекторе js, то они будут работать на ура
0
Странная статья — автор пишет свой велосипедный селектор взамен того, что уже существует в CSS и Jquery, называет переменные со знака доллара, потом использует для проверки на шаг строку
Правильнее и проще было бы написать
Что-то как-то не верится, что он, согласно сайту-источнику, «Long time web professional with huge experience in all types of front-end work».
( ($index-$start) / $step ) == Math.floor( ( ($index-$start) / $step ) )
.Правильнее и проще было бы написать
(index - start) % step == 0
Что-то как-то не верится, что он, согласно сайту-источнику, «Long time web professional with huge experience in all types of front-end work».
+5
а я считаю что автор топика все равно сделал работу правильно. может он и изобрел велосипед, но он смог показать как легко его изобретать и собрать!
0
Тогда нужны комментарии к исходному коду и пояснения:
- что такое Jquery.expr[':']
- что означают параметры node, index, meta
- что должно быть возвращено и почему там такая адская формула
+1
А я считаю, что надо кастрировать тех, кто использует именование $var для обычных переменных.
По общепринятым стандартам переменные начинающиеся с $ означают коллекцию элементов jQuery, а без него соответственно всё остальное.
По общепринятым стандартам переменные начинающиеся с $ означают коллекцию элементов jQuery, а без него соответственно всё остальное.
+1
Вся статья о том как сделать хуже то что уже давно существует.
Вот как надо заменить велосипедный селектор:
Вот как надо заменить велосипедный селектор:
$('li.step(a,b)') -> $('li.nth-child(an+b)')
+3
UFO just landed and posted this here
Sign up to leave a comment.
jQuery:step() селектор произвольной позиции