Домашняя работа №3 - DOM, jQuery
Видео: https://youtu.be/nUytDI9El3U
Основная задача:
- В тот же свой приватный репозиторий скопировать папку
dom. По файлуindex.htmlкак обычно бот будет проверять вашу домашку - В
index.htmlвы увидите таблицу с инпутами. Бот выберет наугад один из инпутов и попытается вставить (Ctrl + V) в него текст типа такого
Євпак Віктор Миколайович;ФОП;1985
Бондаренко Анатолій Васильович;міський голова;1974
Мойсієнко Василь Миколайович;перший проректор;1965
- В
index.jsя уже подготовил обработку событияpasteи вычлинение текста из этого события - Вам нужно разбить этот текст так, чтобы получился массив
[
["Євпак Віктор Миколайович", "ФОП", "1985"],
["Бондаренко Анатолій Васильович", "міський голова", "1974"],
["Мойсієнко Василь Миколайович", "перший проректор", "1965"]
]
- Необходимо добавить ячейки с инпутами в таблицу так, чтобы поместились все данные из этого массива. Например. Если бот вставляет текст в инпут
a2то таблица из такого вида
<table>
<thead>
<tr>
<th> </th>
<th>A</th>
<th>B</th>
</tr>
</thead>
<tbody>
<tr>
<th>1</th>
<td><input type="text" name="a1" value=""/></td>
<td><input type="text" name="b1" value=""/></td>
</tr>
<tr>
<th>2</th>
<td><input type="text" name="a2" value=""/></td>
<td><input type="text" name="b2" value=""/></td>
</tr>
</tbody>
</table>
должна преобразоваться в вот такой вид
<table>
<thead>
<tr>
<th> </th>
<th>A</th>
<th>B</th>
<th>C</th>
</tr>
</thead>
<tbody>
<tr>
<th>1</th>
<td><input type="text" name="a1" value=""/></td>
<td><input type="text" name="b1" value=""/></td>
<td><input type="text" name="c1" value=""/></td>
</tr>
<tr>
<th>2</th>
<td><input type="text" name="a2" value="Євпак Віктор Миколайович"/></td>
<td><input type="text" name="b2" value="ФОП"/></td>
<td><input type="text" name="c2" value="1985"/></td>
</tr>
<tr>
<th>3</th>
<td><input type="text" name="a3" value="Бондаренко Анатолій Васильович"/></td>
<td><input type="text" name="b3" value="міський голова"/></td>
<td><input type="text" name="c3" value="1974"/></td>
</tr>
<tr>
<th>4</th>
<td><input type="text" name="a4" value="Мойсієнко Василь Миколайович"/></td>
<td><input type="text" name="b4" value="перший проректор"/></td>
<td><input type="text" name="c4" value="1965"/></td>
</tr>
</tbody>
</table>
Обратите внимание что появились <th>C</th> и пустой <input type="text" name="c1" value=""/> и каждая новая строчка имеет свой номер <th>3</th> и новые инпуты имеют имена с этим номером <input type="text" name="a3"...
Естественно, что бот будет вставлять несколько раз, разного размера данные, с разным размером строк и столбцов.
Усложнённое задание:
Под таблицами вы увидите две дивки #column-menu и #row-menu. В index.js я уже реализовал:
- появление
#column-menuпо клику наthead thправой клавишей мыши - запоминание текущей колонки по которой кликнули
- обработку клика на каждом из пунктов меню
Ваша задача реализовать:
- Добавление новой колонки слева от текущей колонки
- Добавление новой колонки справа от текущей колонки
- Удаление текущей колонки
- Сделать всё тоже самое только для строк через
#row-menuи правому клику поtbody th
Дополнительное задание:
не показывать #column-menu по клику не первый th (в котором нету буквы) <th> </th>
"В тот же свой приватный репозиторий скопировать папку regexp. По файлу index.html как обычно бот будет проверять вашу домашк" - тут скорее всего папка dom ?
@KonstantinFaleev точно, спасибо
Бот же буде перевіряти по файлу index.html, то можна перейменувати файл index.js в scrypt.js для зручності?
@AndrewVoinarovskyi можно
Все кому нужен WebStorm, я достал купоны на 100% скидку. Всем кому нужен бесплатный WebStorm кидайте свои имейлы в форму https://forms.gle/YDzwg5BgTdNweYUN6 Естественно, что получат купоны только те кто прошёл проверку второго домашнего задания.
@redexp а что если в строке не ровно 2е ;, а больше/меньше? текст должен быть строго буквами укр. алфавита?
@ANScorp в каждой строке будет строго одинаковое количество ; но их может быть сколько угодно. Никаких ограничений по символам в строке нету.
бот будет вставлять текст только в те 4 инпута, которые есть изначально? или в созданные тоже?
@AndriiVitrenko я думал добавить в задание вставку и в созданные, но не придумал как это понятно объяснить, по этому бот будет вставлять только в один из этих четырёх инпутов.
@redexp Вставлятися буде тільки рядок виду str \n str \n str, чи може приходити str \s str \s str?
@Daniel-developer5 не понял вопроса
Ну буде приходити рядок в якому підрядки розделені символом переносу рядку, чи можуть бути розділені пробілом?
Типу, буде тільки так:
Євпак Віктор Миколайович;ФОП;1985
Бондаренко Анатолій Васильович;міський голова;1974
Мойсієнко Василь Миколайович;перший проректор;1965
Чи може прийти так:
Євпак Віктор Миколайович;ФОП;1985 Бондаренко Анатолій Васильович;міський голова;1974 Мойсієнко Василь Миколайович;перший проректор;1965
Вибачаюсь, якщо не зрозуміло будую питання
@Daniel-developer5 крайне странный вопрос. Прямо хочется написать "А ты сам как думаешь?!"... Только первый вариант...
@redexp по https://github.com/redexp/GeekHub-2020.js/issues/16#issuecomment-723905437 если, допустим, в буфере такой текст
Євпак Віктор Миколайович;ФОП;1985;sadfasdfa ; sada8sdf98 Бондаренко Анатолій Васильович;міський голова;1974;вавыdsfsd Мойсієнко Василь Миколайович;перший проректор;1965; asdfsd; adfasdf123
что мы должны получить на выходе? мы полностью игнорируем 2ю строчку?
@ANScorp по хорошему - нет, не игнорируем, а нормализируем, т.е. добавляем недостающие ячейи. Но по факту бот не будет тестировать ваши домашки на таких данных. Количество ячеек в каждой строке будет одинаковым
- 78 репозиториев
- Пустых репозиториев: 63
- Основная задача: 3
Проверку остальных задач пока не реализовал
Купоны на 100% скидку на WebStorm разошлю чуть позже
Добрый день. Если бот вставляет в ячейку В1 или В2, то каждая следующая строчка должна начинаться тоже с ячейки В (то есть делаем красивую таблицу, где все красиво и текст идет строго один под одним ) или добавляем столько ячеек, чтобы просто вместить массив текста от места вставки?
@RomanTaran я не понял первый вариант про "красивую таблицу", но вторая фраза добавляем столько ячеек, чтобы просто вместить массив текста от места вставки больше подходит под задачу этой домашки
@RomanTaran возможно под "красивой таблицей" ты имел ввиду что она должна быть полноценной? Тогда да, количество ячеек в каждой строке должно быть одинаковым.
В дополнительном задании новые строчки и столбцы не наследуют методы добавления и удаления? То есть я могу добавлять и удалять столбцы, только если кликну на А или В?
@RomanTaran бот будет кликать только по A и B для #column-menu и 1 и 2 для #row-menu
@redexp 1) если бот вставит больший массив, а потом меньший, то с большой вероятностью текст поместится в таблицу для прошлого большого массива. то есть строки и столбцы не добавлятся вообще, даже может будут лишние - это нормально? или массивы будут только увеличиваться? или табл нужно возвращать до начального состояния перед вставкой нового массива? 2) "неограниченное" количество столбцов - алфавита для этой цели хватит?
@alexmay112
- Если данные помещаются в таблицу, то новые ячейки добавляться не должны
- алфавита достаточно
переписываю бота, загружен был работой, надеюсь что сегодня на обеде запущу его проверить ваши домашки
- 78 репозиториев
- Пустых репозиториев: 45
- Основная задача: 4
- Усложнённая задача: 1
- Дополнительная задача: 6
если у вас были ошибки в основной задаче, то бот неправильно оценивает усложнённую задачу. Я завтра это исправлю
а каким образом бот проверяет name у input? он делает это запросами input.getAttribute('name') или как? ибо сколько у себя проверял через девтулсы, то все правильно делает
@redexp а можно подробную инструкцию по использовании того кода что пришел на почту? по поводу webstorm
Покупаешь WebStorm и при чекауте вводишь купон и цена полностью списывается до 0
сам чекаут происходит на сайте? или уже в проге?
на сайте
запитання можливо не по темі. як ви робили два коментарі початком і кінцем спойлера, щоб заховати код?
@redexp пишет "This coupon code is not applicable to the products in the shopping cart." что делать?
@AndrewVoinarovskyi
//region Title
some code
//endregion
@AndriiVitrenko даже не знаю, либо купоны просрочены, либо вы выбираете что-то не то
@redexp перехожу на сайте в магазин и там ищу webstorm. дальше кнопка "купить" и появившемся окне оформления заказа ищу поле "have a discount code?". вроде все правильно делал
@redexp пишет "This coupon code is not applicable to the products in the shopping cart." что делать?
Теж видавало таку помилку.
Створив аккаунт на JetBrains, після чого вибрав "придбати ліцензію" зі списку вибрав необхідний продукт. Все пройшло, купон використався.
@redexp дякую!
@VlasSergiy спасибо большое. помогло. работает!!!!
- 78 репозиториев
- Пустых репозиториев: 36
- Основная задача: 5
- Усложнённая задача: 2
- Дополнительная задача: 11
А на эти новые столбцы и строки будет снова применяться 'Paste'? Т.е. нужно ли наследовать в новые инпуты событие "Paste"?
@oleksandr2004lataniuk Нет, не нужно
@AndriiVitrenko я думал добавить в задание вставку и в созданные, но не придумал как это понятно объяснить, по этому бот будет вставлять только в один из этих четырёх инпутов.
Якщо я лишав заявку на купон для WebStorm але його не отримав, то мені треба ще почекати чи я, з якоїсь причини, не потрапив в список?
Вы смотрели issues ?
- 78 репозиториев
- Пустых репозиториев: 31
- Основная задача: 15
- Усложнённая задача: 4
- Дополнительная задача: 19
@redexp вставка текста должна начаться конкретно с той яйчейки в которую вставку выполнили или с первой клеточки того рядка, где сработало событие?
@redexp вставка текста должна начаться конкретно с той яйчейки в которую вставку выполнили или с первой клеточки того рядка, где сработало событие?
@AndriiVitrenko з тієї в яку вставили
ну просто мне пришел репорт от бота. и там фрагмент "і, залишаючись" ну никак не может быть в е4. в самом тексте 5 рядков, поэтому этот фрагмент находится на 5 строке
здравствуйте, еще не поздно получить купон? Я заполнила заявку.
@olgachotii не поздно, можно оставлять до конца недели
@redexp а можно хавтра на уроке взять чью-то домашку (из тех кто утверждает что сделал, но бот выдает ошибку) и вручну на уроке проверить и разобратся?
- 78 репозиториев
- Пустых репозиториев: 23
- Основная задача: 29
- Усложнённая задача: 7
- Дополнительная задача: 29
Доброго вам вечера! А когда дедлайн для этого задания?
@Andreii12 дедлайн для всех заданий - утро понедельника
Доброго вечора. Можете скинути скріншот як повинно виглядати по завершенню всіх завдань. Дякую)
@VadymBezsmertnyi зачем?
- 78 репозиториев
- Пустых репозиториев: 21
- Основная задача: 31
- Усложнённая задача: 8
- Дополнительная задача: 29
- 79 репозиториев
- Пустых репозиториев: 18
- Основная задача: 46
- Усложнённая задача: 13
- Дополнительная задача: 34
Список студентов сократился до 49