这是我的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";
我做错了什么?
答案 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