2010-11-01 7 views
0

J'espère que vous pourrez m'aider avec cela. J'ai le code suivantJavascript affichant un div

</textarea> 
    <br />Word Count: <input type="text" name="c" value="311" size="5" onkeyup="cnt(document.script.w,this)" /> 
    </form> 

    <script type="text/javascript"> 
    var myNumValue = document.getElementById('c').value; 
    var myNum = parseInt(myNumValue); 
    var upperLimit=200; 
    var lowerLimit=10; 

    if(upperLimit == lowerLimit) 
     { 
document.getElementById('div1').style.visibility='visible'; 
     } 
    </script> 

    <div id="div1" style="visibility: hidden;"> 
    Super cool hidden div! 
    </div> 

Pour une raison quelconque, je ne peux pas obtenir le div pour montrer. J'ai essayé de régler le haut et le bas de la même chose et en utilisant == si, quelque chose à l'intérieur du si affiche (par exemple si un document.write il apparaîtra) mais pour une raison quelconque, la div ne sera pas affiché.

Qu'est-ce qui me manque?

Merci!

Kevin

+2

est-il possible que l'objet « div1 » n'a pas été créée au moment où ce javascript est en cours d'exécution? Vous voudrez peut-être mettre la déclaration 'div1' avant le javascript – Peanut

+1

Ajouter une alerte sur document.getElementById ('di v1 ') pour s'assurer qu'il retourne un objet. – Peanut

+1

Pour ajouter plus loin à ce qui précède: Il est généralement considéré comme une bonne pratique de mettre vos scripts juste avant votre «» tag, pour éviter ce genre de chose. –

Répondre

1

Vous n'avez pas spécifié id attribut pour votre domaine:

<input type="text" name="c" value="311" size="5" onkeyup="cnt(document.script.w,this)" /> 

devrait être:

<input type="text" name="c" id="c" value="311" size="5" onkeyup="cnt(document.script.w,this)" /> 

Parce que vous manquez l'y id, vous êtes probablement trouvé un erreur et votre script s'arrête au milieu; une raison pour laquelle votre code n'atteint pas cette condition if.

-1

S'il vous plaît essayer cette

document.getElementById('div1').style.display = 'block'; 
+0

OP utilise la visibilité 'style =": caché; "' – Sarfraz

0

Avez-vous oublié de fermer votre balise <script> ou vous ne l'avez tout simplement pas couper/coller?

La ligne

if(upperLimit == lowerLimit) 

est jamais vrai; vous venez de définir upperLimit comme n'étant pas égal à lowerLimit.

+1

Citant de OP: ** J'ai essayé de régler le haut et le bas le même et en utilisant == ** – Sarfraz

+0

Je serai sacré, il était là. Huh. –

2

Votre premier problème est que l'entrée n'a pas id donc, comme Sarfraz dit, document.getElementById('c') va erreur.

Ce n'est pas le seul problème critique.

Votre script n'est pas dans une fonction, il s'exécutera dès qu'il sera analysé. L'élément div apparaît dans le document après l'élément de script, de sorte que le navigateur ne sait pas qu'il existe au moment de l'exécution du script.

document.getElementById('div1') sera donc erreur. Déplacez l'élément de script après l'élément div ou enveloppez-le dans une fonction et retardez l'exécution jusqu'à ce qu'un événement se déclenche après l'existence de l'élément (par exemple onload (standard) ou ondomready (fourni par de nombreuses bibliothèques JS) .

-1

u n'ont pas objet créé de div1 d'abord créer l'objet.

<div id="div1" style="visibility: hidden;"> 
    Super cool hidden div! 
</div> 
<script type="text/javascript"> 
var myNumValue = document.getElementById('c').value; 
var myNum = parseInt(myNumValue); 
var upperLimit=200; 
var lowerLimit=200; 

if(upperLimit == lowerLimit) 
{ 
    document.getElementById('div1').style.visibility='visible'; 
} 
</script>