#javascript #html #dom
#javascript #HTML #dom
Вопрос:
У меня есть кнопка, которую я хотел бы иметь возможность заставлять появляться и исчезать на странице по мере необходимости. Я могу сделать кнопку скрытой для начала, используя атрибут hidden .
<button type="button btn-primary" id="peekaboo-button" hidden>Peekaboo</button>
Затем я могу заставить кнопку появиться, удалив скрытый атрибут с помощью функции removeAttribute в DOM.
document.getElementById("peekaboo-button").removeAttribute("hidden");
Мне нужно узнать, как добавить скрытый атрибут обратно к элементу button, чтобы снова скрыть его.
Ответ №1:
Для этого вы можете использовать hidden
атрибут.
document.getElementById("peekaboo-button").hidden = true
Это также означает, что если вы хотите его показать, вы можете установить hidden
значение false
Комментарии:
1. скрытый = true работает для моей цели, это решает ту часть ответа, которой у меня не было. По какой-то причине hidden = false не работает.
2. нет, по какой-то причине у меня это так не работает. Я изучаю это подробнее, чтобы понять, что может быть причиной этой проблемы.
3. @TysonGibby в каком браузере? Вы пробовали мой фрагмент?
4. @mplungjan Мне нравится ваш фрагмент, но мне нужно использовать атрибут hidden, а не стиль display: none. Я использую Chrome 88.0.4324.150
5. @TysonGibby Мой ПЕРВЫЙ фрагмент отлично работает в Chrome, так что же он делает на вашем компьютере?
Ответ №2:
Вот так
button.hidden=true;
и
button.hidden=false;
Свойство HTMLElement hidden является логическим значением, которое имеет значение true, если элемент скрыт; в противном случае значение равно false . Это сильно отличается от использования отображения свойств CSS для управления видимостью элемента. Свойство hidden применяется ко всем режимам представления и не должно использоваться для скрытия содержимого, которое предназначено для прямого доступа к пользователю.
const peekaboo = document.getElementById("peekaboo-button")
peekaboo.addEventListener("click",function() {
const but = this;
but.hidden=true
setTimeout(function() { but.hidden=false },1000)
})
<button type="button btn-primary" id="peekaboo-button">Peekaboo</button>
То же самое, но с class
const peekaboo = document.getElementById("peekaboo-button")
peekaboo.addEventListener("click",function() {
const but = this;
but.classList.toggle("hide"); // or add
setTimeout(function() { but.classList.toggle("hide") },1000)
})
.hide { display:none }
<button type="button btn-primary" id="peekaboo-button">Peekaboo</button>