2010-03-10 10 views
14

Espérons qu'il y est un moyen rapide et sale pour enlever le « Poser une question » (ou cacher) à partir d'une page où je peux seulement ajouter CSS et Javascript:Masquer l'élément HTML par id

<div class="nav" style="float: right;"> 
     <ul> 
      <li style="margin-right: 0px;" > 
       <a id="nav-ask" href="https://stackoverflow.com/questions/ask">Ask Question</a> 
      </li> 
     </ul> 
    </div> 

Je ne peux pas masquez la classe nav car d'autres éléments de page l'utilisent. Puis-je masquer l'élément de liaison via l'ID nav-ask?

+0

pas strictement un double de, mais est liée à http://stackoverflow.com/questions/2262115/removing-html-element-by-id –

+1

# représente ID et. représente la classe, ainsi .nav ciblerait votre élément class = "nav" et # nav-ask ciblerait votre identifiant id = "nav-ask". – jwhat

Répondre

15
<style type="text/css"> 
    #nav-ask{ display:none; } 
</style> 
+0

vous êtes manque le # –

+0

Oublié d'ajouter 4 espaces pour formater ma réponse en code. :) – jwhat

2

Je trouve que le code suivant, lorsqu'il est inséré dans le pied de page du site, a travaillé assez bien:

<script type="text/javascript"> 
$("#nav-ask").remove(); 
</script> 

Cela peut ou peut ne pas exiger jquery. Le site que je suis l'édition a jquery, mais malheureusement, je ne suis pas javascripter, donc je n'ai qu'une connaissance limitée de ce qui se passe ici, et les exigences de cet extrait de code ...

+1

remove l'enlève. Ne le cache pas. Utilisez $ ("# nav-ask"). Hide(); –

+4

Sans utiliser un framework JavaScript comme jQuery, le code serait: document.getElementById ('nav-ask'). Style.display = 'none'; – jwhat

5
.nav ul li a#nav-ask{ 
    display:none; 
} 
+0

ooh, je ne savais pas que vous pouviez répondre à l'élément id dans css! –

+3

Je pense qu'il voulait faire cela sur appel, par opposition à tout le temps (peut-être tort), mais au lieu de: ".nav ul li un # nav-ask", faites juste "# nav-ask" – Seaux

76

Si vous souhaitez le faire via javascript plutôt que CSS, vous pouvez utiliser:

var link = document.getElementById('nav-ask'); 
link.style.display = 'none'; //or 
link.style.visibility = 'hidden'; 

en fonction de ce que vous voulez faire.

+3

Cela devrait être la réponse – NeverEndingQueue

4

@Adam Davis, le code que vous avez entré est en réalité un appel jQuery. Si vous avez déjà la bibliothèque chargée, qui fonctionne très bien, sinon vous devrez ajouter le CSS

<style type="text/css"> 
    #nav-ask{ display:none; } 
</style> 

ou si vous avez déjà une classe CSS « ​​HideMe »:

<script type="text/javascript"> 

    if(document.getElementById && document.createTextNode) 
    { 
     if(document.getElementById('nav-ask')) 
     { 
      document.getElementById('nav-ask').className='hideMe'; 
     } 
    } 

</script> 
1

vous pouvez utiliser sélecteurs CSS

a[href="https://stackoverflow.com/questions/ask"] { display:none; }