julia_v_iluhina

Untitled

Dec 21st, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.44 KB | None | 0 0
  1. ответы на вопросы https://docs.google.com/document/d/1It86lyzgfeVAo6JSDTv01QMpUJf_Av-aMyn5cPWFdGQ/edit
  2. со страницы 4
  3.  
  4. Ответ 1 - что мы пропускаем промежуточные элементы если есть
  5. ( даже если их нет мы тоже можем их пропустить, но кажется тебе вариант > понравится больше).
  6. /*
  7.     да, верно, пробел как раз про это
  8.     "#todo-list>li [class='active']" = найти в элементах с селектором "#todo-list>li" внутренние элементы "[class='active']"
  9.     разве у нас есть такие? ведь класс active - как раз у элементов "#todo-list>li" бывает
  10.     т е в данном случае - пробел лишний
  11.  
  12.     сравни
  13.     http://joxi.ru/krDOZldFE0bY7A
  14.     http://joxi.ru/1A5zNxjunKXadr
  15.     http://joxi.ru/n2YkKaGUojvPYr
  16.  
  17.     мой вопрос 1 был про то - что нам в данном случае - пробела между "#todo-list>li" и "[class='active']" - не нужно
  18.     как и знака >
  19.  
  20.     про - но кажется тебе вариант > понравится больше)
  21.     я за точность)
  22.     безотносительно выше описанного случая - если сравнивать
  23.     "#todo-list>li" и "#todo-list li" - то я бы предпочла первый вариант
  24.     т к нам нужны именно прямые потомки li элемента #todo-list
  25.     технически - оба варианта рабочие
  26.     но - в более сложных приложениях - такая неточность может навыбирать тебе еще каких-то внутренних, более вложенных элементов
  27.     именно в этом контексте я предпочту > пробелу
  28.     там - где нужны прямые потомки - разумнее > использовать
  29.     сразу убережешь себя от следствий неточного селектора
  30.  
  31. */
  32. **********************************************
  33. Ответ 2 - Рассуждал так :Есть список таксок > В нем ниже по дереву ищем class='active' поскольку во время правки активная таска одна > В ней уже ищем .edit
  34.  
  35. /*
  36.     класс 'active' - есть у не закомпличеных тасок
  37.  
  38.     а нас интересует таска в режиме редактирования
  39.     у нее - появляется еще один класс
  40.     кстати, посмотри - какие классы будут у закомпличеной редактируемой таски
  41.     и подумай - что тебе даст уточнение 'active' в селекторе - если нужно отредактировать вторую с списке активную таску
  42. */
  43. **********************************************
  44. Тут я немного то не хотел спросить
  45. Если верить
  46.  
  47. То active editing  - это один класс
  48. Я не вижу класса editing.
  49. Но работает селектор именно
  50.  
  51. Как будто есть класс editing
  52. /*
  53.     active editing - это значение атрибута class
  54.     но если мы говорим о css классах  - то это 2 отдельных класса
  55.     так и есть - у элемента = 2 класса = active и editing
  56.  
  57.     иносказательный пример, что я ранее приводила, был как раз про это
  58.     советую еще раз на него взглянуть
  59.  
  60.     наверное, было бы понятнее, если бы атрибут элемента назывался classes )
  61.     но тут уж я тебе ничем не помогу) - он называется class )
  62. */
  63. ***********************************
  64. $$("#todo-list>li").find(exactText("2")).doubleClick();
  65. $("#todo-list>li[class='active editing' .edit").setValue("2 edited").pressEnter();
  66.  
  67. $$("#todo-list>li").find(exactText("2")).doubleClick();
  68. $("#todo-list>li[class='active editing'.edit").setValue("2 edited").pressEnter();
  69.  
  70.  
  71. Знак больше - Ищем прямого наследника
  72. Пробел – ищем ниже по дереву элементов пока не найдем первый нужный элемент. т.е родственник пусть и не прямой
  73. Точка – определение класса
  74.  
  75. Или есть еще значения?
  76.  
  77.  
  78. C кавычкой и пробелом – работает..спасибо!!
  79.  
  80. /*
  81.     про знак больше и пробел - ок, все верно
  82.     про точку - тоже (единственное - уясни - что КАЖДОЕ слово в атрибуте class - это css class
  83.     (на слова разделили пробелами строку-значение атрибута)
  84.  
  85.     по поводу селектора
  86.     "#todo-list>li[class='active editing'.edit"
  87.     не хватает закрывающейся квадратной скобки - чтоб он был рабочим
  88.  
  89.     как объясняла ранее - нам абсолютно бесполезно искать таску по классу active
  90.     т к редактироваться могут таски в любом состоянии - активном или закомпличенном
  91.  
  92.     ну и если для #todo-list>li - мы оперируем переменной tasks
  93.     то так и продолжаем
  94.     найди в tasks - элемент с классом таким-то - используя tasks.findBy(....)
  95.     и в уже этом элементе - внутренний элемент .edit - tasks.findBy(....).find(....)
  96.  
  97.     такой способ - позволит код сделать нагляднее
  98.     уменьшит количество независимых селекторов (сопровждать код будет легче - меньше переделывать)
  99.     да и сообщения об ошибках - получишь более детальные
  100.     много плюсов в таком подходе)
  101.     Посмотри в faq - раздел по DRY принципу
  102. */
  103. **********************************
  104.  
  105. 2. Какое-то у меня недопонимание с селекторами
  106.  
  107. Так не работает
  108. $("#filters li a.selected").click();
  109. $("#filters li a.selected [href="#/active]").click();
  110. /*
  111.   для начала посмотри - у всех ли элементов-фильтров есть класс  selected
  112.   сравни
  113.   #filters li a.selected [href="#/active]
  114.     и
  115.     #filters li a[href='#/active']
  116.  
  117.     посмотри на описание синтаксиса - думаю, будет ясно, в чем дело
  118.  
  119.     работу с селекторами начинай в браузере
  120.     так значительно меньше сил потратишь на их поиск
  121. */
  122.  
  123. Проверил ..есть у всех..картинки ниже.. в общем пока еще не понял на что ты намекала
  124. /*
  125.     интересно)
  126.     на картинках - ты смотрел на селектор #filters li a.selected
  127.     причем - каждый раз - делая нужный тебе фильтр активным)
  128.     а не на селектор #filters li a.selected [href="#/active] , к примеру)
  129.  
  130.     попробуй сделать активным фильтр Active
  131.     и найти его по селектору, в который входит класс selected
  132.     получится?
  133.  
  134.     про значение пробела - ты уже сам выше верные выводы сделал
  135.  
  136.     опять повторяю вопрос - у всех ли элементов-фильтров есть класс  selected
  137.     уточняю - у всех ли элементов-фильтров есть класс  selected ____одновременно____?
  138.     открой html код
  139.     так чтоб были видны все элементы a из #filters li
  140.     и понаблюдай - какой из элементов 'a' является 'selected'
  141.     и подумай - нужно ли тебе такое уточение в данном случае
  142.  
  143.     или - посмотри - найдешь ли по селектору #filters li a.selected - все 3 фильтра сразу
  144.     мы так найдем только тот фильтр - который активный
  145.     и зачем это нам?
  146.     он и так уже активный) кликать на уже и так активном фильтре - нам точно без надобности
  147.  
  148.     нам - нужна возможность - кликать на нужном нам фильтре - для перехода на фильтр
  149.     для проверок - определять какой фильтр активный - точно не нужно
  150.     т к это - уже проверка UI, а не логики
  151.     после перехода на нужный тебе фильтр - важно проверить состояние списка тасок - именно это будет проверкой логики
  152.     про примат функциональных проверок  над UI-проверками - было в предыдущей лекции
  153.  
  154.     я похоже не очень понимаю - с чем у тебя теперь проблемы
  155.     в http://pastebin.com/4FpBTqDa (строки 137-157) мы разобрали код
  156.     и там у тебя никаких проблем с доступом к нужному фильтру - уже не было
  157.  
  158.     задай вопрос точнее, если он остался
  159.     не уточняя предыдущую переписку, а просто - сформулируй вопрос
  160.  
  161.     т к по этой переписке - я не могу нормально сделать вывод, в чем конкретно в данный момент сложность
  162. */
Advertisement
Add Comment
Please, Sign In to add comment