【问题标题】:show and hide div显示和隐藏 div
【发布时间】:2013-02-05 23:20:53
【问题描述】:

我的 html 中有四个不同的 div,我想隐藏它们,然后根据我点击的链接显示我选择的一个。但是,我无法隐藏它们。它不起作用,我希望各个 div 中的任何内容都显示在链接下,而不是像现在这样显示在它们旁边。我最大的困难是隐藏我的div,有什么解决办法吗?

Javascript

function show1(){
var minaP = document.getElementByID("one");
minaP.style.visibility = "visible";
}

function show2(){
var minaP = document.getElementById("two");
minaP.style.visibility = "visible";
}

function show3(){
var minaP = document.getElementById("three");
minaP.style.visibility = "visible";
}

function show4(){
var minaP = document.getElementById("four");
minaP.style.visibility = "visible";
}

function init() {

var minaDiv = document.getElementsByTagName("div");
for(i=0; i<minaDiv.length; i++){
  minaDiv[i].style.visibility = "hidden";
}

var minaA = document.getElementsByTagName("a");
for(i=0; i<minaA.length; i++){
  if(document.getElementById == "1"){
    minaA.onclick = show1;
  }
}

}

window.onload = init;

HTML

<div>
<ul class="meny">
<li><a href="#" id="1">Utvärdering/Feedback</a></li>
<li><a href="#" id="2">Kontakt</a></li>
<li><a href="#" id="3">Öppettider</a></li>
<li><a href="#" id="4">Om Asperöd</a></li>
</ul>
</div>

<div id="one">
<p><b>Aperåd Äventyrsland</b></p> 
<p>Växel: 0200-123456999 (kl.08:30-15)</p>
<p>Stora Vägen 140</p>
<p>289 22 Aperöd</p>
<p>Skicka oss din <a href="#">fråga</a></p>
</div>
<div id="two">
<p>Du kan kontakta oss på följande nummer: 
<br> 040-123456
</p>
<p> Du kan även mejla oss:
<br> aperöd@hotmail.com
</p>
</div>
<div id="three">
<p>Vi har följande öppettider:</p>
<p> Mån-Fre: 10:00 - 20:00 </p>
<p> Lör: 10:00 - 18:00 </p>
</div>
<div id="four">

Aperöd är en fin park for alla möjliga personer。 Vi erbjuder en massa, men det kostar 500kr





【问题讨论】:

    标签: javascript html toggle show-hide


    【解决方案1】:

    也许你应该考虑使用/学习 jQuery。它有助于减少代码大小,并且有很多精美的动画;)

    这里是.hide() .show()的快速演示

    http://jsfiddle.net/yFhX5/

    【讨论】:

    • 哇,这很简单也很好。虽然当我点击一个新链接时内容并没有消失。它只是一个接一个地落下。除此之外,很好的介绍。谢谢
    • @DrWoolie 欢迎您。如果您想显示/隐藏它们jsfiddle.net/yFhX5/1,只需更新.toggle
    • @DrWooolie ...不确定,也许你想要这样的东西jsfiddle.net/yFhX5/2
    • 这不是代码错误,但是当我实现它时,它不起作用。我不知道为什么
    • @DrWooolie 只需将&lt;script src="http://code.jquery.com/jquery-latest.js"&gt;&lt;/script&gt; 包含在您的头部 HTML 部分中
    【解决方案2】:

    您需要使用style.display = 'none',而不是style.visibilitystyle.display = 'block''inline' 来显示它们

    【讨论】:

    • -1 这是不正确的。尝试运行这个小脚本(在 chrome 中按 F12,然后单击“控制台”):document.getElementById('question').style.visibility = 'hidden'
    • 尝试运行 document.getElementById('question').style.display = 'none',它有效,反之亦然。
    • 1 - op 的声明是代码不起作用,2 - 'Property style of null' 表示您正在执行一个不存在的元素的 document.getElementById。 .style.display 有效,我每天都在使用它!
    • 是的,我将我的 id 更改为现有的 div。但我想知道如果我尝试使用 getElementsByTagName 为什么它不起作用?相反,我必须执行此代码 4 次,因为我有 4 个 div
    • 如果你将它单独与数组元素一起使用它应该可以工作(就像你对可见性所做的那样,如果应用于整个数组它将不起作用
    猜你喜欢
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    相关资源
    最近更新 更多