2010-11-01 67 views
0

我希望你们可以帮助我。我有以下代码Javascript显示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> 

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

我错过了什么?

谢谢!

凯文

+2

是否有可能在“DIV1”对象尚未在此javascript正在运行时创建的?你可能想将'div1'声明放在javascript之前 – Peanut 2010-11-01 05:22:45

+1

要添加到上面,请在document.getElementById('di v1')来确保它正在返回一个对象。 – Peanut 2010-11-01 05:24:21

+1

要进一步补充以上内容:通常认为将您的脚本放在您的''标签之前是很好的做法,以避免这种情况。 – 2010-11-01 05:25:27

回答

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条件的原因。

-1

请试试这个

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

OP正在使用'style =“visibility:hidden;”' – Sarfraz 2010-11-01 05:26:45

0

你忘了关闭<script>标签还是你只是没有剪切/粘贴吗?

线

if(upperLimit == lowerLimit) 

是不正确的;您只是将upperLimit定义为不等于lowerLimit。

+1

引用来自OP:**我已经尝试设置上下相同,并使用== ** – Sarfraz 2010-11-01 05:25:20

+0

我会很生气,它在那里。呵呵。 – 2010-11-01 05:26:23

2

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

虽然这不是唯一的关键问题。

您的脚本不在函数中,因此只要解析它就会运行。

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

document.getElementById('div1')将因此错误。

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

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