2

我在一个类中有许多带有 id 的 div。如何显示一个并隐藏其余的?这是我的 HTML 和 3 个这样的 div

<div class="build">
   <div id="slide1">
      <!--slide1 elements -->
   </div>
   <div id="slide2">
      <!--slide2 elements-->
   </div>
   <div id="slide3">
      <!--slide2 elements-->
   </div>
</div>

这是我用 JS 尝试过的:

if (exp_id == "a_exp1") {
    new_exp_id = exp_id;

    $("#right").html("<div><img id='myimage1' onclick='changeimage1()' src='images/build_i.png'/>")
}

function changeimage1() {
    for (var n = 1; n <= 3; n++) {
        if (new_exp_id == "a_exp" + n) {


            $('.build').hide();
            $('.build').find('#slide' + n).show();
        }
    }
}   

所以,如果它是a_exp1,它应该对应于slide1,如果它是a_exp2,它应该对应于slide2,依此类推。

我需要显示一个 div 并隐藏其余部分。我该怎么做呢?我在 HTML 的开头隐藏了整个类。

4

4 回答 4

4
$('.build').children('div').click(function()
{
    $(this).show().siblings().hide();
});
于 2013-04-05T06:23:42.730 回答
2

为所有 div 提供相同的类,让我们说“.chat”,然后用“.chat”类隐藏所有 div,并显示你想要显示的那个

<div id="slide1" class="chat">
<div id="slide2" class="chat">
<div id="slide3" class="chat">

现在如果你想用 id 显示 divslide3你可以做这样的事情

$('.chat').hide();
 $('#slide3').show();

如果您使用任何点击事件来显示和隐藏内容,那么使用实时点击而不是仅仅点击

$('#somebutton').live("click",function(){
     $('.chat').hide();
 $('#slide3').show();
});
于 2013-04-05T06:27:40.923 回答
0

我会用“全部隐藏,显示一个”的方法来处理它,它允许你不关心以前显示的是哪一个,只关心你想要显示的那个:

function showSlide(currentSlide) {
    $(".build").children().hide(); 
    $("#slide" + currentSlide).show();
}

然后你就可以了showSlide(1),你很高兴。

于 2013-04-05T06:21:04.470 回答
0
$(document).ready (function () {
    $(".build div").click(function () {
       $(this).siblings().hide().end().show(); 
    });
});
于 2013-04-05T06:22:48.677 回答