Javascript显示div

时间:2010-11-01 05:18:49

标签: javascript css html

我希望你们可以帮助我。我有以下代码

  </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>

出于某种原因,我不能让div显示出来。我已经尝试设置上部和下部相同并使用== in if,if显示内部的任何内容(例如,如果它将显示一个document.write)但由于某种原因div不会显示。

我错过了什么?

谢谢!

凯文

5 个答案:

答案 0 :(得分:2)

你的第一个问题是输入没有id所以,正如Sarfraz所说,document.getElementById('c')会出错。

但这不是唯一的关键问题。

您的脚本不在函数中,因此它将在解析后立即运行。

div元素出现在之后脚本元素中,因此浏览器在脚本运行时不知道它是否存在。

document.getElementById('div1')因此会出错。

将script元素移动到div元素之后,或者将其包装在函数中并延迟执行,直到在元素存在之后触发的事件(例如onload(标准)或ondomready(由许多JS库提供)。

答案 1 :(得分:1)

您尚未为您的字段指定id属性:

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

应该是:

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

因为你错过了那里的id,你很可能会收到错误而你的脚本会在中间停止;您的代码未达到if条件的原因。

答案 2 :(得分:0)

您是否忘了关闭<script>标签,或者您是不是剪切/粘贴了它?

该行

if(upperLimit == lowerLimit)

永远不会是真的;你刚才将upperLimit定义为不等于lowerLimit。

答案 3 :(得分:-1)

请试试这个

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

答案 4 :(得分:-1)

你还没有创建div1的对象 首先创建对象。

<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>