Доброго времени суток.
Такая проблема.
В фрагменте "создаём диалоговое окно" (строки 57-71) кода обращение к элементу массива (allProperty[i][0]) работает корректно. Ячейки unitOkno закрашиваются правильно.
А в фрагменте "клик по unitOkno" (строки 75-85) такое же allProperty[i][1] выдает не одно значение, а все значения, с allProperty[0][1] по allProperty[6][1].
Отчего такие глюки?
// кнопка Fullscreen
let btn = document.getElementById ("btn");
let bd = document.querySelector ("body")
btn.addEventListener ("click", function (event) {
bd.requestFullscreen();
let target = event.target;
target.style.display = "none";
});
// создаём таблицу
let elem = document.querySelector ("#elem");
createTable (elem, 7, 1);
function createTable(parent, cols, rows) {
let table = document.createElement("table");
for (let i = 0; i < rows; i++ ){
let tr = document.createElement ("tr");
for (let j = 0; j < cols; j++){
let th = document.createElement("th");
tr.appendChild(th);
};
table.appendChild(tr);
};
parent.appendChild(table);
};
// закрашиваем ячейки таблицы
const allProperty = [
["#dc143c", "Crimson", "#ff0000", "Red", "#ffc0cb", "Pink"],
["#ffa500", "Orange", "#ffd700", "Gold", "#ffff00", "Yellow"],
["#008000", "Green", "#0bda51", "Malachite", "#00ff00", "Lime"],
["#000080", "Navy", "#0000ff", "Blue", "#79d8ff", "Cyan"],
["#5a005a", "Purple", "#ff00ff", "Magenta", "#d2a8d4", "Violet"],
["#800000", "Maroon", "#964b00", "Brown", "#cc7722", "Ochre"],
["#010101", "Black", "#ada8a5", "Gray", "#ffffff", "White"]
];
let unit = document.querySelectorAll ("th");
for (let i = 0; i < allProperty.length; i++) {
unit[i].style.backgroundColor = allProperty[i][0];}
console.log (unit);
// создаём диалоговое окно
let dialog = document.querySelector("dialog");
let unitOkno = dialog.querySelectorAll ("td");
for (let i = 0; i < allProperty.length; i++) {
unit[i].addEventListener ("click", function() {
dialog.show();
unitOkno[0].style.backgroundColor = allProperty[i][0];
unitOkno[1].style.backgroundColor = allProperty[i][2];
unitOkno[2].style.backgroundColor = allProperty[i][4];
});
};
document.querySelector("#close").onclick = function() {
dialog.close();
};
// клик по unitOkno
let ppp = document.querySelector("#ppp");
for (let i = 0; i < allProperty.length; i++) {
for (let k = 0; k < unitOkno.length; k++) {
unitOkno[k].addEventListener ("click", function() {
dialog.style.backgroundColor = unitOkno[k].style.backgroundColor;
if (k == 0) {ppp.append (allProperty[i][1])};
if (k == 1) {ppp.append (allProperty[i][3])};
if (k == 2) {ppp.append (allProperty[i][5])};
});
};
};
И еще один вопрос/просьба.
Дальше я планирую добавить в массив allProperty элементы с ссылкой на звуковые файлы. Как сделать, чтобы при клике на unitOkno запускался файл ссылка на который расположена в allProperty пока не представляю.
Подскажите, пожалуйста.