Это проблема:
Создание сетки 10x10 с использованием html, vanilla javascript и css.
Если щелкнуть квадрат на этой сетке, измените цвет фона соседних квадратов (один сверху, слева и т. Д.) На желтый.
Мне удалось решить эту проблему, но я не думаю, что она эффективна - мой html - только одна строка:
<table id="grid"></table>
И я использовал javascript, чтобы вручную заполнить таблицу кучей ячеек / квадратов. Я дал каждой ячейке два атрибута data-row
и data-col
для хранения места расположения ячейки. Затем на клике я делаю что-то вроде этого:
var row = this.getAttribute('data-row');
var col = this.getAttribute('data-col');
...
//if not on the top most row, retrieve square above
if(row>0){
let sel = "td[data-row='"+(row-1)+"'][data-col='"+col+"']";
let elem = document.querySelector(sel);
elem.classList.toggle('yellow');
}
...
//3 more if blocks like the one above to find the bottom, left and right squares
Есть ли более эффективный или лаконичный способ сделать это? Спасибо за ваши ответы заранее! Это ценится:)