Как показать или скрыть элемент:
Чтобы показать или скрыть элемент, манипулируйте свойством стиля элемента . В большинстве случаев вы, вероятно, просто хотите изменить display
свойство элемента :
element.style.display = 'none'; // Hide
element.style.display = 'block'; // Show
element.style.display = 'inline'; // Show
element.style.display = 'inline-block'; // Show
В качестве альтернативы, если вы все еще хотите, чтобы элемент занимал пространство (например, если бы вы скрывали ячейку таблицы), вы могли бы вместо этого изменить visibility
свойство элемента :
element.style.visibility = 'hidden'; // Hide
element.style.visibility = 'visible'; // Show
Сокрытие коллекции элементов:
Если вы хотите скрыть коллекцию элементов, просто переберите каждый элемент и измените его display
на none
:
function hide (elements) {
elements = elements.length ? elements : [elements];
for (var index = 0; index < elements.length; index++) {
elements[index].style.display = 'none';
}
}
// Usage:
hide(document.querySelectorAll('.target'));
hide(document.querySelector('.target'));
hide(document.getElementById('target'));
hide(document.querySelectorAll('.target'));
function hide (elements) {
elements = elements.length ? elements : [elements];
for (var index = 0; index < elements.length; index++) {
elements[index].style.display = 'none';
}
}
<div class="target">This div will be hidden.</div>
<span class="target">This span will be hidden as well.</span>
Показ коллекции элементов:
В большинстве случаев вы, вероятно, будете просто переключаться между display: none
и display: block
, что означает, что при отображении коллекции элементов может быть достаточно следующего .
При желании вы можете указать желаемое display
в качестве второго аргумента, если не хотите, чтобы он был установлен по умолчанию block
.
function show (elements, specifiedDisplay) {
elements = elements.length ? elements : [elements];
for (var index = 0; index < elements.length; index++) {
elements[index].style.display = specifiedDisplay || 'block';
}
}
// Usage:
var elements = document.querySelectorAll('.target');
show(elements);
show(elements, 'inline-block'); // The second param allows you to specify a display value
var elements = document.querySelectorAll('.target');
show(elements, 'inline-block'); // The second param allows you to specify a display value
show(document.getElementById('hidden-input'));
function show (elements, specifiedDisplay) {
elements = elements.length ? elements : [elements];
for (var index = 0; index < elements.length; index++) {
elements[index].style.display = specifiedDisplay || 'block';
}
}
<div class="target" style="display: none">This hidden div should have a display of 'inline-block' when it is shown.</div>
<span>Inline span..</span>
<input id="hidden-input" />
В качестве альтернативы, лучший подход для показа элемента (-ов) состоит в простом удалении встроенного display
стиля, чтобы вернуть его обратно в исходное состояние. Затем проверьте вычисляемый display
стиль элемента, чтобы определить, скрыт ли он каскадным правилом. Если так, то покажи элемент.
function show (elements, specifiedDisplay) {
var computedDisplay, element, index;
elements = elements.length ? elements : [elements];
for (index = 0; index < elements.length; index++) {
element = elements[index];
// Remove the element's inline display styling
element.style.display = '';
computedDisplay = window.getComputedStyle(element, null).getPropertyValue('display');
if (computedDisplay === 'none') {
element.style.display = specifiedDisplay || 'block';
}
}
}
show(document.querySelectorAll('.target'));
function show (elements, specifiedDisplay) {
var computedDisplay, element, index;
elements = elements.length ? elements : [elements];
for (index = 0; index < elements.length; index++) {
element = elements[index];
// Remove the element's inline display styling
element.style.display = '';
computedDisplay = window.getComputedStyle(element, null).getPropertyValue('display');
if (computedDisplay === 'none') {
element.style.display = specifiedDisplay || 'block';
}
}
}
<span class="target" style="display: none">Should revert back to being inline.</span>
<span class="target" style="display: none">Inline as well.</span>
<div class="target" style="display: none">Should revert back to being block level.</div>
<span class="target" style="display: none">Should revert back to being inline.</span>
(Если вы хотите сделать еще один шаг вперед, вы можете даже подражать тому, что делает jQuery, и определять стили браузера по умолчанию для элемента, добавляя элемент к пустому iframe
(без конфликтующей таблицы стилей), а затем извлекать вычисленные стили. При этом вы будет знать истинное начальное display
значение свойства элемента, и вам не нужно будет жестко кодировать значение, чтобы получить желаемые результаты.)
Переключение дисплея:
Аналогично, если вы хотите переключить display
элемент или коллекцию элементов, вы можете просто выполнить итерацию по каждому элементу и определить, является ли он видимым, проверив вычисленное значение display
свойства. Если он виден, установите display
для none
, в противном случае удалите встроенный display
стиль, а если он все еще скрыт, установите display
для указанного значения или по умолчанию жестко заданное значение block
.
function toggle (elements, specifiedDisplay) {
var element, index;
elements = elements.length ? elements : [elements];
for (index = 0; index < elements.length; index++) {
element = elements[index];
if (isElementHidden(element)) {
element.style.display = '';
// If the element is still hidden after removing the inline display
if (isElementHidden(element)) {
element.style.display = specifiedDisplay || 'block';
}
} else {
element.style.display = 'none';
}
}
function isElementHidden (element) {
return window.getComputedStyle(element, null).getPropertyValue('display') === 'none';
}
}
// Usage:
document.getElementById('toggle-button').addEventListener('click', function () {
toggle(document.querySelectorAll('.target'));
});
document.getElementById('toggle-button').addEventListener('click', function () {
toggle(document.querySelectorAll('.target'));
});
function toggle (elements, specifiedDisplay) {
var element, index;
elements = elements.length ? elements : [elements];
for (index = 0; index < elements.length; index++) {
element = elements[index];
if (isElementHidden(element)) {
element.style.display = '';
// If the element is still hidden after removing the inline display
if (isElementHidden(element)) {
element.style.display = specifiedDisplay || 'block';
}
} else {
element.style.display = 'none';
}
}
function isElementHidden (element) {
return window.getComputedStyle(element, null).getPropertyValue('display') === 'none';
}
}
.target { display: none; }
<button id="toggle-button">Toggle display</button>
<span class="target">Toggle the span.</span>
<div class="target">Toggle the div.</div>
Вы можете просто манипулировать стилем рассматриваемого div ...
источник
Вы можете Скрыть / Показать Div, используя функцию Js. образец ниже
HTML -
источник
Используя стиль:
Использование обработчика событий в JavaScript лучше, чем
onclick=""
атрибут в HTML:JavaScript:
JQuery может помочь вам легко управлять элементами DOM!
источник
hidden
атрибут HTML5Я нашел этот простой код JavaScript очень удобным!
источник
Установите свой HTML как
А теперь установите JavaScript как
источник
источник
Просто установите атрибут стиля ID:
Показать скрытый div
Чтобы скрыть показанный div
источник
И ответ Purescript для людей, использующих галоген:
Если вы «осмотрите элемент», вы увидите что-то вроде:
но на вашем экране ничего не будет отображаться, как ожидалось.
источник
Просто простая функция, необходимая для реализации Показать / скрыть 'div' с помощью JavaScript
источник
Я нашел этот вопрос, и недавно я реализовывал некоторые пользовательские интерфейсы, используя Vue.js, так что это может быть хорошей альтернативой.
Сначала ваш код не прячется,
target
когда вы нажимаете на Просмотр профиля. Вы переопределяете содержаниеtarget
сdiv2
.источник
Вы можете легко достичь этого с помощью jQuery .toggle () .
источник