div显示基于按钮

时间:2011-11-19 00:46:50

标签: javascript jquery

我有一个jsfiddle:

http://jsfiddle.net/Jsh2V/10/

第一组测试按钮(“显示它”和“隐藏它”)效果很好。我一直试图让第二组按钮(“拥有它”和“需要它”)用div做同样的事情。不工作。有什么建议?此外,如果有更有效的方法来做到这一点......

这里是小提琴的代码:

<!DOCTYPE html>
<html>
<head>
  <style>
      p { background:yellow; }
      </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <button class="1">Show it</button>
  <button class="2">Hide it</button>

      <p style="display: none" class="1">Hello</p>
      <p style="display: none" class="2">Un Hello!</p>
<script>
    $("button.1").click(function () {
    $("p.1").show("slow");
    $("p.2").hide("fast");
    });
</script>
<script>
    $("button.2").click(function () {
    $("p.1").hide("fast");
    $("p.2").show("slow");
    });
</script>


    <button class="have">Have</button>
    <button class="need">Need</button>

    <div id="have" style="display: none">HAVE YO</div>
    <div id="need" style="display: none">NEED YO</div>
<script>
    $("button.have").click(function () {
    $("div.have").show("slow");
    $("div.need").hide("fast");
    });
</script>
<script>
    $("button.need").click(function () {
    $("div.need").show("slow");
    $("div.have").hide("fast");
    });
</script>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

应该是div#have而不是div.have,因为您的div的ID为have,而不是have类。

<script>
    $("button.have").click(function () {
    $("div#have").show("slow");
    $("div#need").hide("fast");
    });
</script>
<script>
    $("button.need").click(function () {
    $("div#need").show("slow");
    $("div#have").hide("fast");
    });
</script>

答案 1 :(得分:1)

这是一个工作小提琴:

http://jsfiddle.net/SfXVA/

您使用ID作为后两个div,因此您需要使用#(对于ID)而不是ID来引用它们。 (对于班级)你的选择器。

[编辑]

此外,你不需要做'div#have',只需'#have'就足够了,因为ID在DOM中应该是唯一的。