Javascript 无法获取内部变量。无法在jquery中工作

Javascript 无法获取内部变量。无法在jquery中工作,javascript,jquery,Javascript,Jquery,我想将类添加/删除到。查看常见问题解答。当有人单击时。查看常见问题,其父选择器。f-faq将添加类名。隐藏并删除类名。如果有,则显示。所有其他.f-faq将添加类名“.show”,并删除类名。如果有,则隐藏 我如何让它工作?欢呼: 你忘记了点击事件中间线的关闭: 您的代码: $('.view-faq').click(function(){ var current = $(this).closest('.f-blurb'); $(".f-blub").not($(current).

我想将类添加/删除到。查看常见问题解答。当有人单击时。查看常见问题,其父选择器。f-faq将添加类名。隐藏并删除类名。如果有,则显示。所有其他.f-faq将添加类名“.show”,并删除类名。如果有,则隐藏


我如何让它工作?欢呼:

你忘记了点击事件中间线的关闭:

您的代码:

$('.view-faq').click(function(){
    var current = $(this).closest('.f-blurb');
    $(".f-blub").not($(current).removeClass('hiden').addClass('shown');
    current.removeClass('shown').addClass('hiden');
})
正确的代码应该是当前的jq对象:

$('.view-faq').click(function(){
    var current = $(this).closest('.f-blurb');
    $(".f-blub").not(current).removeClass('hiden').addClass('shown');   <---------
    current.removeClass('shown').addClass('hiden');
})

你可以用这种方式重写

$('.view-faq').click(function () {
    var current = $(this).closest('.f-blurb');
    current
        .removeClass('shown').addClass('hiden')
        .siblings().removeClass('hiden').addClass('shown');
});
这样,您就不需要从整个DOM中重新选择具有类f-blurb的元素,这可能是一个有点繁重的操作

你有以下问题

丢失的 f-blub应该是fblurb 您可以使用以下命令:

$('.view-faq').on("click", function(){
    var current = $(this).closest('.f-blurb');
    $(".f-blurb").removeClass("hiden").addClass('shown');
    current.removeClass('shown').addClass('hiden');
});

这里有语法错误,缺少结束符。当前元素在赋值时已经是jQuery对象,无需重新包装。@George仍然不会将类“Showed”添加到其他元素。@Alex您可以简单地显示所有元素,然后隐藏当前元素。查看我的答案,使用工作演示@Alex,因为“f-blub”!='f-blurb':我猜应该是:$.f-blub.notcurrent.removeClass'hiden'。addClass'Showed';否则,下面这句话就没什么意义了@A.Wolff我支持你!谢谢更正!我编辑了这篇博士后,这是我的错。我已经添加了,但它仍然没有将类“Showed”添加到其他类。@Alex您可以简单地显示全部,然后隐藏当前元素。看看我的答案与工作演示这是一个很好的和简单的方式来实现。干杯
$('.view-faq').click(function () {
    var current = $(this).closest('.f-blurb');
    current
        .removeClass('shown').addClass('hiden')
        .siblings().removeClass('hiden').addClass('shown');
});
$('.view-faq').on("click", function(){
    var current = $(this).closest('.f-blurb');
    $(".f-blurb").removeClass("hiden").addClass('shown');
    current.removeClass('shown').addClass('hiden');
});