在隐藏的div中显示div

时间:2013-04-13 16:50:04

标签: jquery css html selector

我在div中有两个div,我想一次只显示一个

<div class="songContent">
    <div id="song1"> song 1 </div>
    <div id="song2"> song 2</div>
</div>

我使用此函数从另一个元素触发事件:(将字符串作为参数传递给函数,例如:songId = song1)

function showSong(songId){  
    $('.songContent div').hide();
    var sel = '#'+songId;
    $(sel).show()
    $( sel +' div').show()
    alert(sel);             //debugging
}

任何帮助将不胜感激, 谢谢,

4 个答案:

答案 0 :(得分:7)

这样的东西?

function showSong(songId){
    $('#'+songId).show().siblings().hide();
}

答案 1 :(得分:2)

如果您在开始时一次只显示一个,则只需使用切换。

$('#show').click(function(){
       $('div[id^=song]','#songContent').toggle();
});

答案 2 :(得分:1)

function showSong(songId){  
    $('.songContent div').hide();
    $('div[id=' + songId + ']').show();
}

答案 3 :(得分:1)

如果您构建的选择器字符串看起来像#song1 div,则找不到您的song1 div。您需要div#song1

之类的内容

示例:

function showSong(songId){  
    $('.songContent div').hide();
    var sel = '#'+songId;
    $( 'div' + sel).show()
}

但是by-id选择器本身(sel)应该作为选择器使用。