Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ответы на вопросы https://docs.google.com/document/d/1It86lyzgfeVAo6JSDTv01QMpUJf_Av-aMyn5cPWFdGQ/edit
- со страницы 4
- Ответ 1 - что мы пропускаем промежуточные элементы если есть
- ( даже если их нет мы тоже можем их пропустить, но кажется тебе вариант > понравится больше).
- /*
- да, верно, пробел как раз про это
- "#todo-list>li [class='active']" = найти в элементах с селектором "#todo-list>li" внутренние элементы "[class='active']"
- разве у нас есть такие? ведь класс active - как раз у элементов "#todo-list>li" бывает
- т е в данном случае - пробел лишний
- сравни
- http://joxi.ru/krDOZldFE0bY7A
- http://joxi.ru/1A5zNxjunKXadr
- http://joxi.ru/n2YkKaGUojvPYr
- мой вопрос 1 был про то - что нам в данном случае - пробела между "#todo-list>li" и "[class='active']" - не нужно
- как и знака >
- про - но кажется тебе вариант > понравится больше)
- я за точность)
- безотносительно выше описанного случая - если сравнивать
- "#todo-list>li" и "#todo-list li" - то я бы предпочла первый вариант
- т к нам нужны именно прямые потомки li элемента #todo-list
- технически - оба варианта рабочие
- но - в более сложных приложениях - такая неточность может навыбирать тебе еще каких-то внутренних, более вложенных элементов
- именно в этом контексте я предпочту > пробелу
- там - где нужны прямые потомки - разумнее > использовать
- сразу убережешь себя от следствий неточного селектора
- */
- **********************************************
- Ответ 2 - Рассуждал так :Есть список таксок > В нем ниже по дереву ищем class='active' поскольку во время правки активная таска одна > В ней уже ищем .edit
- /*
- класс 'active' - есть у не закомпличеных тасок
- а нас интересует таска в режиме редактирования
- у нее - появляется еще один класс
- кстати, посмотри - какие классы будут у закомпличеной редактируемой таски
- и подумай - что тебе даст уточнение 'active' в селекторе - если нужно отредактировать вторую с списке активную таску
- */
- **********************************************
- Тут я немного то не хотел спросить
- Если верить
- То active editing - это один класс
- Я не вижу класса editing.
- Но работает селектор именно
- Как будто есть класс editing
- /*
- active editing - это значение атрибута class
- но если мы говорим о css классах - то это 2 отдельных класса
- так и есть - у элемента = 2 класса = active и editing
- иносказательный пример, что я ранее приводила, был как раз про это
- советую еще раз на него взглянуть
- наверное, было бы понятнее, если бы атрибут элемента назывался classes )
- но тут уж я тебе ничем не помогу) - он называется class )
- */
- ***********************************
- $$("#todo-list>li").find(exactText("2")).doubleClick();
- $("#todo-list>li[class='active editing' .edit").setValue("2 edited").pressEnter();
- $$("#todo-list>li").find(exactText("2")).doubleClick();
- $("#todo-list>li[class='active editing'.edit").setValue("2 edited").pressEnter();
- Знак больше - Ищем прямого наследника
- Пробел – ищем ниже по дереву элементов пока не найдем первый нужный элемент. т.е родственник пусть и не прямой
- Точка – определение класса
- Или есть еще значения?
- C кавычкой и пробелом – работает..спасибо!!
- /*
- про знак больше и пробел - ок, все верно
- про точку - тоже (единственное - уясни - что КАЖДОЕ слово в атрибуте class - это css class
- (на слова разделили пробелами строку-значение атрибута)
- по поводу селектора
- "#todo-list>li[class='active editing'.edit"
- не хватает закрывающейся квадратной скобки - чтоб он был рабочим
- как объясняла ранее - нам абсолютно бесполезно искать таску по классу active
- т к редактироваться могут таски в любом состоянии - активном или закомпличенном
- ну и если для #todo-list>li - мы оперируем переменной tasks
- то так и продолжаем
- найди в tasks - элемент с классом таким-то - используя tasks.findBy(....)
- и в уже этом элементе - внутренний элемент .edit - tasks.findBy(....).find(....)
- такой способ - позволит код сделать нагляднее
- уменьшит количество независимых селекторов (сопровждать код будет легче - меньше переделывать)
- да и сообщения об ошибках - получишь более детальные
- много плюсов в таком подходе)
- Посмотри в faq - раздел по DRY принципу
- */
- **********************************
- 2. Какое-то у меня недопонимание с селекторами
- Так не работает
- $("#filters li a.selected").click();
- $("#filters li a.selected [href="#/active]").click();
- /*
- для начала посмотри - у всех ли элементов-фильтров есть класс selected
- сравни
- #filters li a.selected [href="#/active]
- и
- #filters li a[href='#/active']
- посмотри на описание синтаксиса - думаю, будет ясно, в чем дело
- работу с селекторами начинай в браузере
- так значительно меньше сил потратишь на их поиск
- */
- Проверил ..есть у всех..картинки ниже.. в общем пока еще не понял на что ты намекала
- /*
- интересно)
- на картинках - ты смотрел на селектор #filters li a.selected
- причем - каждый раз - делая нужный тебе фильтр активным)
- а не на селектор #filters li a.selected [href="#/active] , к примеру)
- попробуй сделать активным фильтр Active
- и найти его по селектору, в который входит класс selected
- получится?
- про значение пробела - ты уже сам выше верные выводы сделал
- опять повторяю вопрос - у всех ли элементов-фильтров есть класс selected
- уточняю - у всех ли элементов-фильтров есть класс selected ____одновременно____?
- открой html код
- так чтоб были видны все элементы a из #filters li
- и понаблюдай - какой из элементов 'a' является 'selected'
- и подумай - нужно ли тебе такое уточение в данном случае
- или - посмотри - найдешь ли по селектору #filters li a.selected - все 3 фильтра сразу
- мы так найдем только тот фильтр - который активный
- и зачем это нам?
- он и так уже активный) кликать на уже и так активном фильтре - нам точно без надобности
- нам - нужна возможность - кликать на нужном нам фильтре - для перехода на фильтр
- для проверок - определять какой фильтр активный - точно не нужно
- т к это - уже проверка UI, а не логики
- после перехода на нужный тебе фильтр - важно проверить состояние списка тасок - именно это будет проверкой логики
- про примат функциональных проверок над UI-проверками - было в предыдущей лекции
- я похоже не очень понимаю - с чем у тебя теперь проблемы
- в http://pastebin.com/4FpBTqDa (строки 137-157) мы разобрали код
- и там у тебя никаких проблем с доступом к нужному фильтру - уже не было
- задай вопрос точнее, если он остался
- не уточняя предыдущую переписку, а просто - сформулируй вопрос
- т к по этой переписке - я не могу нормально сделать вывод, в чем конкретно в данный момент сложность
- */
Advertisement
Add Comment
Please, Sign In to add comment