jquery show hide替换区域

时间:2010-03-30 15:14:37

标签: jquery hide show

我如何使用jQuery显示/隐藏相同的div区域...基本上交换内容?

这是我到目前为止所做的,我无法弄清楚如何隐藏以前的内容并将其替换为新的内容:

       <script type="text/javascript">
    $(document).ready(function(){

    $('.content').hide();

    $('a').click(function(){
    $('.content').show('slow');
    });

    //then hide previous content

    });

    </script>

<a href="#" id="a-link">A</a>
<a href="#" id="b-link">B</a>

  <div class="start-content" id="a">
  content here
  </div>

  <div class="content" id="b">
  content here
  </div>

2 个答案:

答案 0 :(得分:2)

如果将内容包装在div中,这会更容易一些,如下所示:

<div id="wrap">
  <div class="start-content" id="a">
  content here
  </div>

  <div class="content" id="b">
  content here
  </div>
</div>

这在jQuery中:

$('a').click(function(){
  $("#wrap > div").hide(); //hide previous
  $('.content').show('slow'); //show what's clicked on
});

既然你有一个带有你ID的约定,你可以使用它,给你链接一个类,或者包装它们,如下所示:

<div id="links">
  <a href="#" id="a-link">A</a>
  <a href="#" id="b-link">B</a>
</div>
<div id="wrap">
  <div class="start-content" id="a">
  content here
  </div>    
  <div class="content" id="b">
  content here
  </div>
</div>

然后,您可以为所有链接使用单个事件处理程序,如下所示:

$('#wap > div:not(.start-content)').hide(); //Initial hide
$("#links a").click(function() {
  $("#wrap > div").hide(); //hide previous
  var id = $(this).attr("id").replace('-link', ''); //matching id
  $('#' + id).show('slow'); //show what's clicked on
});

答案 1 :(得分:0)

保持内容div可见;相反,只需换出HTML内容即可 $('.content').html(strvalue);