隐藏除一个之外的所有div并切换那个

时间:2017-01-15 11:06:44

标签: jquery

<div class='logolink' data-msg='msg01'>lorem ipsum</div>
<div class='logolink' data-msg='msg02'>lorem ipsum</div>
<div class='logolink' data-msg='msg03'>lorem ipsum</div>

<div class='msgt' id='msg01'>lorem ipsum</div>
<div class='msgt' id='msg02'>lorem ipsum</div>
<div class='msgt' id='msg03'>lorem ipsum</div>

.msgt被隐藏 我想要的是什么,例如,如果点击第一个logolink
- 隐藏msgt以外的所有msg01 - 如果msg01可见 - 隐藏它 - 反之亦然。

JS

$('.logolink').click(function(){
    var a = $(this).data('msg');
    var b = $('#' + a);
    $('.msgt:not(b)').hide();
    b.toggle();
});

不起作用。

2 个答案:

答案 0 :(得分:3)

您在此上下文中使用了$('.logolink').click(function(){ var a = $(this).data('msg'); var b = $('#' + a); $('.msgt').not(b).hide(); b.toggle(); }); 函数,

b

由于C:\>wmic process where name="webserver2.exe" get processid,parentprocessid,commandline CommandLine ParentProcessId ProcessId webserver2.exe --scheduled 3136 2212 webserver2.exe --scheduled 2212 6004 是一个jquery对象,因此无法沿字符串传递。

答案 1 :(得分:0)

$('.logolink').click(function() {
    var $item = $('#' + $(this).data('msg');
    $item.toggle();
    $item.siblings().hide();
});