隐藏并通过锚点显示div内容

时间:2015-10-16 03:33:36

标签: javascript jquery html

我有一个锚点,当点击显示内容时,取决于它匹配的ID。但脚本不起作用。

HTML:

<a href="javascript:ReverseDisplay('asd')">
Click to show/hide</a>

<div id="asd" style="display:none;">
<p>Content goes here.</p>
</div>

SCRIPT:

function HideContent(d) {
document.getElementById(d).style.display = "none";
}
function ShowContent(d) {
document.getElementById(d).style.display = "block";
}
function ReverseDisplay(d) {
if(document.getElementById(d).style.display == "none") { document.getElementById(d).style.display = "block"; }
else { document.getElementById(d).style.display = "none"; }
}

FIDDLE HERE

2 个答案:

答案 0 :(得分:1)

你的问题是:

&#34;框架&amp;扩展&#34; 部分,在JSFiddle的左侧边栏中,您可以选择&#34; onLoad &#34;选择。这会导致您的函数被包装在事件侦听器中(仅在加载页面内容时才运行的函数)。由于您的函数最终在此事件侦听器中声明,因此它们在窗口对象(javascript&#39; s&#34;全局对象&#34;)中不可用。因此,当点击链接尝试调用该函数时,它将是&#34; 未定义&#34;在窗口对象中抛出错误(您可以在浏览器的控制台中看到这一点)。只需将该选项更改为&#34;无需包装 - #34; ,您就可以了。 =)

另外,我建议您使用降低的首字母来命名您的函数,因为如果函数是构造函数,那么只使用大写字母启动函数名称是最佳实践。

答案 1 :(得分:1)

从jsfiddle framework and extension中移除onload check

Demo