为什么这个隐藏显示功能不起作用

Why is this hide show function not working?

本文关键字:功能 不起作用 显示 隐藏 为什么      更新时间:2023-09-26

我是一个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';
}

你的代码是完美的,但你是在页面的onLoad中创建你的函数,这意味着当你从一个href标签调用它时,它超出了范围。 如果你将你的小提琴与@dtsq进行比较,你会注意到,如果你点击 JAVASCRIPT 按钮,荷载类型是你的onLoadNo wrap - in <body>是他的。

No wrap - in <body>告诉浏览器不要包装你的js代码并将其放在正文中。
请注意,No wrap - in <head>也可以正常工作。

onLoad告诉浏览器包装代码,以便它将在 onLoad 窗口事件中运行。 你说你在其他地方实现了这段代码,它奏效了。 当您将此纯 JavaScript 代码添加到头部或身体部分时,它可以正常工作。 但我敢打赌,您正在尝试将此代码放在 JQuery 块或其他 onLoad 区域中,这会导致由于范围而导致问题。