Cómo mostrar u ocultar un elemento:
Para mostrar u ocultar un elemento, manipule la propiedad de estilo del elemento . En la mayoría de los casos, probablemente solo desee cambiar la display
propiedad del elemento :
element.style.display = 'none'; // Hide
element.style.display = 'block'; // Show
element.style.display = 'inline'; // Show
element.style.display = 'inline-block'; // Show
Alternativamente, si aún desea que el elemento ocupe espacio (como si ocultara una celda de tabla), podría cambiar la visibility
propiedad del elemento en su lugar:
element.style.visibility = 'hidden'; // Hide
element.style.visibility = 'visible'; // Show
Ocultar una colección de elementos:
Si desea ocultar una colección de elementos, simplemente repita cada elemento y cambie los elementos display
a 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>
Mostrando una colección de elementos:
La mayoría de las veces, probablemente solo alternará entre display: none
y display: block
, lo que significa que lo siguiente puede ser suficiente al mostrar una colección de elementos.
Opcionalmente, puede especificar el deseado display
como segundo argumento si no desea que sea predeterminado 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" />
Alternativamente, un mejor enfoque para mostrar los elementos sería simplemente eliminar el display
estilo en línea para volver a su estado inicial. Luego verifique el display
estilo calculado del elemento para determinar si está oculto por una regla en cascada. Si es así, muestra el elemento.
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>
(Si desea ir un paso más allá, incluso podría imitar lo que hace jQuery y determinar el estilo predeterminado del navegador del elemento agregando el elemento a un espacio en blanco iframe
(sin una hoja de estilo en conflicto) y luego recuperar el estilo calculado. Al hacerlo, usted sabrá el verdadero display
valor de propiedad inicial del elemento y no tendrá que codificar un valor para obtener los resultados deseados).
Alternar la pantalla:
Del mismo modo, si desea alternar display
entre un elemento o una colección de elementos, simplemente puede iterar sobre cada elemento y determinar si es visible comprobando el valor calculado de la display
propiedad. Si es visible, establecer el display
que none
, de otro modo retirar la línea display
de estilo, y si todavía está oculto, establecer el display
al valor especificado o por defecto codificada, 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>
Simplemente puede manipular el estilo del div en cuestión ...
fuente
Puede Ocultar / Mostrar Div utilizando la función Js. muestra a continuación
HTML -
fuente
Usando estilo:
Usar un controlador de eventos en JavaScript es mejor que el
onclick=""
atributo en HTML:JavaScript:
¡jQuery puede ayudarte a manipular elementos DOM fácilmente!
fuente
hidden
atributo de HTML5¡Encontré este simple código JavaScript muy útil!
fuente
Establece tu HTML como
Y ahora configura el javascript como
fuente
fuente
Simplemente simple Establezca el atributo de estilo de ID:
Para mostrar el div oculto
Para ocultar el div mostrado
fuente
Y la respuesta Purescript, para las personas que usan halógenos:
Si "inspecciona el elemento", verá algo como:
pero nada se mostrará en su pantalla, como se esperaba.
fuente
Solo una función simple necesita implementar Mostrar / ocultar 'div' usando JavaScript
fuente
Encontré esta pregunta y recientemente estaba implementando algunas UI usando Vue.js, por lo que esta puede ser una buena alternativa.
Primero, su código no se oculta
target
cuando hace clic en Ver perfil. Estás anulando el contenidotarget
condiv2
.fuente
Puede lograr esto fácilmente con el uso de jQuery .toggle () .
fuente