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

Jquery 隐藏除一个div之外的所有div并切换该div,jquery,Jquery,不起作用。您已在该上下文中使用了。而不是函数 $('.logolink').click(function(){ var a = $(this).data('msg'); var b = $('#' + a); $('.msgt:not(b)').hide(); b.toggle(); }); 因为b是一个jquery对象,它不能通过字符串传递。@bonaca很乐意帮忙!:)你能解释一下这段代码是做什么的,它与原始代码有什么不同,为什么它能解决这个问题?首先,我结

不起作用。

您已在该上下文中使用了
。而不是
函数

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

因为
b
是一个jquery对象,它不能通过字符串传递。

@bonaca很乐意帮忙!:)你能解释一下这段代码是做什么的,它与原始代码有什么不同,为什么它能解决这个问题?首先,我结合了第一步和第二步。(不是很重要,但为什么要初始化一个额外的变量)$item.toggle()与上一个相同$item.sides().hide()会选择所有的同级(即除目标元素外的同一级别上的div),但是编辑答案(帖子下面有一个编辑链接)并将信息放在那里。
$('.logolink').click(function(){
    var a = $(this).data('msg');
    var b = $('#' + a);
    $('.msgt').not(b).hide();
    b.toggle();
});
$('.logolink').click(function(){
    var a = $(this).data('msg');
    var b = $('#' + a);
    $('.msgt').not(b).hide();
    b.toggle();
});
$('.logolink').click(function() {
    var $item = $('#' + $(this).data('msg');
    $item.toggle();
    $item.siblings().hide();
});