无法用JavaScript隐藏我的DIV

时间:2010-08-02 13:55:34

标签: .net javascript html

这是我的DIV

<div id="MyDiv">
    <div class="fa_close"><a href="#" onclick="hFa()"><img src="fadead/close1.jpg" /></a></div>
    <h1><i>THIS WEEK'S</i></h1>
    <img src="fadead/special.jpg" alt="special" />
</div>

我试图隐藏它,但它不想工作

document.getElementById("MyDiv").style.visibility = "hidden";  

我做错了什么?

6 个答案:

答案 0 :(得分:4)

您提供的代码运作正常。必须有其他干扰的东西。测试:http://jsbin.com/ilofi

如果元素尚未加载,请记住document.getElementById("MyDiv")会返回undefined。因此,document.getElementById("MyDiv")在以下情况中为undefined

<script type="text/javascript">
alert(document.getElementById("MyDiv"));
</script>

<div id="MyDiv"></div>

但它是以下情况中的元素:

<div id="MyDiv"></div>

<script type="text/javascript">
alert(document.getElementById("MyDiv"));
</script>

出于这个原因以及performance reasons,脚本尽可能靠近页面底部。

答案 1 :(得分:4)

在浏览器实际看到您的标记后,您必须确保代码运行。如果您试图隐藏<script><head>块中的元素,那么浏览器将不会看到该元素,因此无法找到它。

<script>块移到<body>的最后,看看会发生什么!

答案 2 :(得分:3)

如果你真的想隐藏某些东西,请使用

document.getElementById("MyDiv").style.display = "none"; 

答案 3 :(得分:1)

为什么不给style display:none?由于这个JavaScript在HEAD中运行,你显然打算让它成为DIV的起始条件,但我不能想到用JS代替好旧的HTML和CSS来做这个的好理由。

答案 4 :(得分:0)

我测试了以下HTML:

<body>
<div id="MyDiv">
    <div class="fa_close"><a href="#" onclick="hFa()"><img src="fadead/close1.jpg" /></a></div>
    <h1><i>THIS WEEK'S</i></h1>
    <img src="fadead/special.jpg" alt="special" />
</div>
<input type="button" onClick="document.getElementById('MyDiv').style.visibility = 'hidden'; "/>
</body>

它在我的FF和IE8上完美运行。

您使用的是什么浏览器?你试过调试吗?

答案 5 :(得分:0)

你总是可以尝试使用像mootools或jquery这样的框架 这可以帮助你做很多简单的工作

mootools的 $( “MyDiv”)的setStyle( '显示', '无')。 演示: http://demos.mootools.net/

JQuery的: $( “#MyDiv”)隐藏()。 演示 http://api.jquery.com/hide/

如果您想查看更多内容 http://www.ajaxrain.com