Mostrare/nascondere 'div' usando JavaScript
Per un sito web che sto facendo, voglio caricare un div e nasconderne un altro, poi avere due pulsanti che alternano le viste tra i div usando JavaScript.
Questo è il mio codice attuale
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>
La seconda funzione che sostituisce div2 non funziona, ma la prima sì.
170
3
Come mostrare o nascondere un elemento:
Per mostrare o nascondere un elemento, manipola la proprietà di stile dell'elemento. Nella maggior parte dei casi, probabilmente vuoi solo cambiare la proprietà
display
dell'elemento:In alternativa, se vuoi ancora che l'elemento occupi spazio (come se dovessi nascondere una cella della tabella), potresti invece cambiare la proprietà
visibility
dell'elemento:Nascondere un insieme di elementi:
Se vuoi nascondere un insieme di elementi, basta iterare su ogni elemento e cambiare il
display
dell'elemento innone
:Mostra una collezione di elementi:
La maggior parte delle volte, probabilmente dovrai solo alternare tra
display: none
edisplay: block
, il che significa che quanto segue può essere sufficiente quando si mostra un insieme di elementi.Puoi opzionalmente specificare il
display
desiderato come secondo argomento se non vuoi che sia predefinito sublock
.{\a6}}}}}}}Si tratta di un'operazione che non ha nulla a che fare con la creazione di una nuova pagina web;
In alternativa, un approccio migliore per mostrare l'elemento (o gli elementi) sarebbe semplicemente rimuovere lo stile
display
in linea per riportarlo al suo stato iniziale. Poi controllare lo stiledisplay
calcolato dell'elemento per determinare se è stato nascosto da una regola a cascata. Se è così, allora mostra l'elemento.(Se vuoi fare un passo avanti, potresti anche imitare ciò che fa jQuery e determinare lo stile predefinito del browser dell'elemento aggiungendo l'elemento ad un
iframe
vuoto (senza un foglio di stile in conflitto) e poi recuperare lo stile calcolato. Così facendo, conoscerete il vero valore iniziale della proprietàdisplay
dell'elemento e non dovrete hardcodeare un valore per ottenere i risultati desiderati).Alterare la visualizzazione:
Allo stesso modo, se vuoi cambiare la "visualizzazione" di un elemento o di un insieme di elementi, puoi semplicemente iterare su ogni elemento e determinare se è visibile controllando il valore calcolato della proprietà "display". Se è visibile, imposta il
display
anone
, altrimenti rimuovi lo stiledisplay
in linea, e se è ancora nascosto, imposta ildisplay
al valore specificato o al valore predefinito,block
.Potete semplicemente manipolare lo stile del div in questione...
Usare lo stile:
Usare un gestore di eventi in JavaScript è meglio dell'attributo
onclick=""
in HTML:JavaScript:
jQuery può aiutarti a manipolare facilmente gli elementi del DOM!