Vis/skjul 'div' ved hjælp af JavaScript
På et websted, jeg er ved at lave, vil jeg indlæse en div og skjule en anden div og derefter have to knapper, der skifter visning mellem div'erne ved hjælp af JavaScript.
Dette er min nuværende kode
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>
Den anden funktion, der erstatter div2, virker ikke, men det gør den første.
170
3
Hvordan du viser eller skjuler et element:
For at vise eller skjule et element skal du manipulere elementets style property. I de fleste tilfælde vil du sandsynligvis bare ændre elementets
display
-egenskab:Alternativt, hvis du stadig gerne vil have, at elementet skal fylde plads (f.eks. hvis du vil skjule en tabelcelle), kan du ændre elementets
visibility
-egenskab i stedet:Hiding a collection of elements:
Hvis du ønsker at skjule en samling af elementer, skal du blot iterere over hvert element og ændre elementets
display
tilnone
:Visning af en samling af elementer:
Det meste af tiden vil du sandsynligvis bare skifte mellem
display: none
ogdisplay: block
, hvilket betyder at følgende kan være tilstrækkeligt, når du viser en samling af elementer.Du kan eventuelt angive den ønskede
display
som det andet argument, hvis du ikke ønsker, at den som standard skal væreblock
.Alternativt ville en bedre metode til at vise elementet/elementerne være blot at fjerne inline
display
-styling for at vende tilbage til den oprindelige tilstand. Derefter kontrolleres den beregnededisplay
-stil for elementet for at afgøre, om det er skjult af en kaskaderegel. Hvis det er tilfældet, skal elementet vises.(Hvis du vil gå et skridt videre, kan du endda efterligne det, som jQuery gør, og bestemme elementets standard-browserstyling ved at tilføje elementet til en tom
iframe
(uden et modstridende stylesheet) og derefter hente den beregnede styling. På den måde kender du den sande oprindeligedisplay
-egenskabsværdi for elementet, og du behøver ikke at hardcode en værdi for at få de ønskede resultater).Skift af visning:
Hvis du på samme måde ønsker at skifte
display
for et element eller en samling af elementer, kan du simpelthen iterere over hvert element og bestemme, om det er synligt ved at kontrollere den beregnede værdi afdisplay
-egenskaben. Hvis det er synligt, sættesdisplay
tilnone
, ellers fjernes inlinedisplay
-styling, og hvis det stadig er skjult, sættesdisplay
til den angivne værdi eller den hardcodede standardværdi,block
.Du kan simpelthen ændre stilen på den pågældende div...
Brug af stil:
Det er bedre at bruge en eventhandler i JavaScript end attributten
onclick="""
i HTML:JavaScript:
jQuery kan hjælpe dig med at manipulere DOM-elementer nemt!