我是一个javascript初学者,但我已经在其他地方实现了这个代码并且它有效。我忽略了一些明显的东西吗?
https://jsfiddle.net/x3oj787q/1/
HTML:
<a href="javascript:toggle_visibility('div');">help</a>
<div id="div"style="display: none;">
help
</div>
JS:
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
答案 0 :(得分:1)
您的代码非常完美,但是您正在页面的onLoad中创建函数,这意味着当您从href标记中调用它时,它的范围超出范围。如果你将你的小提琴与@dtsq进行比较,你会注意到你单击JAVASCRIPT按钮,你的加载类型是onLoad
,而No wrap - in <body>
是你的。{/ p>
No wrap - in <body>
告诉浏览器不要包装你的js代码并将它放在正文中。
请注意No wrap - in <head>
也可以正常工作。
onLoad
告诉浏览器包装代码,使其在onLoad窗口事件中运行。你说你在其他地方实现了这个代码并且它有效。当您将这个普通的javascript代码添加到head或body部分时,它可以正常工作。但是我愿意打赌你试图将这些代码放在JQuery块或其他onLoad区域,这会导致由于范围问题。