0

我在一个 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

4 回答 4

7

像这样的东西?

function showSong(songId){
    $('#'+songId).show().siblings().hide();
}
于 2013-04-13T16:52:49.953 回答
2

如果您在开始时一次只显示一个,您可以简单地使用切换。

$('#show').click(function(){
       $('div[id^=song]','#songContent').toggle();
});
于 2013-04-13T17:04:18.180 回答
1
function showSong(songId){  
    $('.songContent div').hide();
    $('div[id=' + songId + ']').show();
}
于 2013-04-13T16:53:54.037 回答
1

如果您构建一个看起来像 的选择器字符串#song1 div,它将找不到您的song1div。你需要类似的东西div#song1

例子:

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

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

于 2013-04-13T16:53:56.173 回答