Как найти и убрать в JS vanila
В JS я пытаюсь найти в li нужный тег автора data-author, и когда они одинаковы с idUser, то убираем кнопку #btn. Чет то у меня не получается.
<span id="idUser" data-iduser="2"></span>
<ul>
<li class="author author_id1" data-author="1" data-id="1">...</li>
<li class="author author_id2" data-author="2" data-id="2">...</li>
<li class="author author_id3" data-author="3" data-id="3">...</li>
</ul>
<button id="btn">Button</button>
const idUser = document.getElementById("idUser").dataset.iduser
const author = document.querySelectorAll('li').dataset.author
if (idUser === author) {
document.getElementById('btn').remove()
}
Как все это правильно дописать?
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
document.querySelectorAll('li') возвращает коллекцию элементов, у неё нет свойства .dataset.author. Чтобы проверить, содержит ли какой-то элемент из этой коллекции свойство .dataset.author, совпадающее с idUser, можно превратить коллекцию в массив и воспользоваться методом Array.prototype.some().
const idUser = document.getElementById("idUser").dataset.iduser
const authors = [...document.querySelectorAll('li')]
if (authors.some(author => author.dataset.author === idUser)) {
document.getElementById('btn').remove()
}
<span id="idUser" data-iduser="2"></span>
<ul>
<li class="author author_id1" data-author="1" data-id="1">...</li>
<li class="author author_id2" data-author="2" data-id="2">...</li>
<li class="author author_id3" data-author="3" data-id="3">...</li>
</ul>
<button id="btn">Button</button>