Показване/скриване на 'div' с помощта на JavaScript
За един уебсайт, който правя, искам да заредя един дивиди и да скрия друг, след което да имам два бутона, които ще превключват изгледите между дивидитата с помощта на JavaScript.
Това е настоящият ми код
function replaceContentInContainer(target, source) {
document.getElementById(target).innerHTML = document.getElementById(source).innerHTML;
}
function replaceContentInOtherContainer(replace_target, source) {
document.getElementById(replace_target).innerHTML = document.getElementById(source).innerHTML;
}
<html>
<button onClick="replaceContentInContainer('target', 'replace_target')">View Portfolio</button>
<button onClick="replaceContentInOtherContainer('replace_target', 'target')">View Results</button>
<div>
<span id="target">div1</span>
</div>
<div style="display:none">
<span id="replace_target">div2</span>
</div>
Втората функция, която замества div2, не работи, но първата работи.
170
3
Как да покажете или скриете даден елемент:
За да покажете или скриете даден елемент, манипулирайте style property на елемента. В повечето случаи вероятно искате просто да промените свойството
display
на елемента':Алтернативно, ако все пак искате елементът да заема място (например ако искате да скриете клетка от таблица), можете да промените вместо това свойството
видимост
на елемента:Скриване на колекция от елементи:
Ако искате да скриете колекция от елементи, просто преминете итеративно през всеки елемент и променете
display
наnone
:Показване на колекция от елементи:
През повечето време вероятно ще превключвате между
display: none
иdisplay: block
, което означава, че следното може да е достатъчно при показване на колекция от елементи.По желание можете да посочите желания
display
като втори аргумент, ако не искате по подразбиране да се използваblock
.Алтернативно, по-добър подход за показване на елемента(ите) би бил просто да се премахне вградената стилизация
display
, за да се върне в първоначалното си състояние. След това проверете изчисленияdisplay
стил на елемента, за да определите дали той е скрит от каскадно правило. Ако е така, покажете елемента.(Ако искате да отидете още по-далеч, можете дори да имитирате това, което прави jQuery, и да определите стила по подразбиране на браузъра, като добавите елемента към празен
iframe
(без конфликтна таблица със стилове) и след това извлечете изчисления стил. По този начин ще знаете истинската първоначална стойност на свойствотоdisplay
на елемента и няма да се налага да кодирате твърдо стойност, за да получите желаните резултати).Превключване на дисплея:
По същия начин, ако желаете да превключите
показването
на елемент или колекция от елементи, можете просто да преминете през всеки елемент и да определите дали е видим, като проверите изчислената стойност на свойствотопоказване
. Ако е видим, задайтеdisplay
наnone
, в противен случай премахнете вграденото стилизиранеdisplay
, а ако все още е скрит, задайтеdisplay
на посочената стойност или на твърдо зададената стойност по подразбиране,block
.Можете просто да манипулирате стила на въпросното div...
Използване на стил:
Използването на обработчик на събития в JavaScript е по-добро от атрибута
onclick=""
в HTML:JavaScript:
jQuery може да ви помогне да манипулирате DOM елементите лесно!