Javascript 如何在单击另一个元素时显示和隐藏该元素

Javascript 如何在单击另一个元素时显示和隐藏该元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我用下面的代码触发了一系列div元素 $(".course_id").on("click", function(){ var id = $(this).data("id"); $("div#lessons_by_course_" + id).removeClass("hidden"); }); div有一个名为lessons\u by\u course+id的id,例如 <div id="lessons_by_course1"></div> i

我用下面的代码触发了一系列div元素

$(".course_id").on("click", function(){
     var id = $(this).data("id");
     $("div#lessons_by_course_" + id).removeClass("hidden");
});
div有一个名为lessons\u by\u course+id的id,例如

<div id="lessons_by_course1"></div>

id号是使用RubyonRails动态解析的

我想要的是,当我单击一个div时,我希望它显示出来;当我单击另一个div时,我希望jquery隐藏显示的最后一个div,并显示我单击的下一个div


请注意.course\u id是一个包含许多元素的类,因此每次单击某个元素时,都会弹出一个不同的div,因为每次的id都不同。

您可以将最后显示的元素的id缓存在全局变量中:

var id;
然后在循环中:

$(".course_id").on("click", function(){
    if(id) {
        $("div#lessons_by_course_" + id).addClass("hidden");
    }
    id = $(this).id;
    $(this).removeClass("hidden");
});

您可以在全局变量中缓存最后显示的元素的id:

var id;
然后在循环中:

$(".course_id").on("click", function(){
    if(id) {
        $("div#lessons_by_course_" + id).addClass("hidden");
    }
    id = $(this).id;
    $(this).removeClass("hidden");
});

这个问题很难理解。你能编辑语法吗?这个问题很难理解。你能编辑语法吗可能只是
id=this.id!您不必使用刚从元素中提取的id来选择元素<代码>id=this.id$(本节)。removeClass(“隐藏”)注意
id=$(this).data(“id”)
可能只是
id=this.id!您不必使用刚从元素中提取的id来选择元素<代码>id=this.id$(本节)。removeClass(“隐藏”)