Изменение стиля к родительскому элементу JS
Необходимо для дива completed сделать рамку красную. для expired синюю. Не могу обратиться к родительскому элементу.
let a;
let b;
let dueStatus = document.querySelectorAll("div");
for(let q of dueStatus) {
if (q.dataset.status == `completed`) {
a = q.dataset.status;
a.parentElement.style.border = "1px solid red";
console.log(a);
}
else if (q.dataset.status == `expired`) {
b = q.dataset.status;
console.log(b);
}
}
<div class="qqq" data-status="completed">
Смотри фильм
</div>
<div class="qqq" data-status="expired">
Читай книгу
</div>
мое решение:
Ответы (2 шт):
Автор решения: Oliver Patterson
→ Ссылка
Вы пытаетесь получить parentElement у строки.
let a;
let b;
let dueStatus = document.querySelectorAll("div");
for(let q of dueStatus) {
if (q.dataset.status == `completed`) {
a = q.dataset.status;
q.style.border = "1px solid red";
console.log(a);
}
else if (q.dataset.status == `expired`) {
b = q.dataset.status;
q.style.border = "1px solid blue";
console.log(b);
}
}
<div class="qqq" data-status="completed">
Смотри фильм
</div>
<div class="qqq" data-status="expired">
Читай книгу
</div>
Автор решения: Laukhin Andrey
→ Ссылка
Не забывайте также про возможности CSS:
.qqq[data-status=completed] {
border: 1px solid red;
}
.qqq[data-status=expired] {
border: 1px solid blue;
}
<div class="qqq" data-status="completed">
Смотри фильм
</div>
<div class="qqq" data-status="expired">
Читай книгу
</div>