2010-12-09 15 views
-1

Ich habe ein Anker-Tag. Ich möchte es dynamisch verstecken/anzeigen. Ich kann es aus irgendeinem Grund nicht in ein Div/Span setzen. Wie kann ich es tun?verstecken/zeigen Sie einen Anker dynamisch

+2

Ich weiß nicht, was ein "Hahn" ist in diesem Zusammenhang. Bitte formulieren Sie die Frage um und zeigen Sie einen Code –

+0

Sie sollten viel mehr Kontext und vielleicht etwas Beispielcode geben. Niemand weiß, wovon du sprichst. –

+3

Ich denke, das ist ein schrecklicher Schreibfehler des "Anchor-Tags" (nicht dass du Tags anzeigen oder ausblenden kannst, außer im Quellcode, nur Elemente). – Quentin

Antwort

7

Sobald Sie einen Verweis auf das DOM-Element für den Anker-Tag haben, dies zu tun:

// Hide 
element.style.display = "none"; 

// Show again 
element.style.display = ""; 

Es gibt mehrere Möglichkeiten, wie Sie diese Referenz bekommen würde. Zum Beispiel, wenn der Anker eine id hat, können Sie getElementById verwenden:

HTML:

<a href='whatever' id='foo'>Whatever</a> 

JavaScript:

element = document.getElementById('foo'); 

Wenn der Anker keine ID haben und Sie don‘ Wenn Sie aus irgendeinem Grund eine hinzufügen möchten, können Sie andere Informationen dazu verwenden, um das richtige Element zu identifizieren. Dies geschieht am einfachsten mit einer Bibliothek wie jQuery, Prototype, YUI, Closure oder any of several others, die Ihnen die Möglichkeit gibt, CSS-Selektoren zu verwenden, um die fraglichen Anker zu finden. Ohne eine Bibliothek müssen Sie sich auf eine kleine Anzahl von gut unterstützten DOM-Funktionen verlassen oder mit Browservariationen umgehen, was Ihnen die Bibliotheken ersparen.

Hier ist ein Beispiel (live copy) von der Anker auf einer Seite durch alle Looping und eine Basis versteckt auf seiner href:

HTML:

<a href='http://stackoverflow.com'>StackOverflow</a> 
<a href='http://superuser.com'>SuperUser</a> 
<a href='http://serverfault.com'>ServerFault</a> 

JavaScript:

var links, index, link; 

links = document.getElementsByTagName('a'); 
for (index = 0; index < links.length; ++index) { 
    link = links[index]; 
    if (link.href.indexOf('superuser') >= 0) { 
    link.style.display = "none"; 
    break; 
    } 
} 

Das wird dramatisch einfacher, wenn Sie eine Bibliothek verwenden. Zum Beispiel, hier ist eine jQuery-Version davon (live copy):

$('a[href*=superuser]').hide(); 

Hier ist die Prototyp-Version (live copy):

$$('a[href*=superuser]').invoke('hide'); 
Verwandte Themen