如何在javascript中切换特定div

如何在javascript中切换特定div,javascript,jquery,css-selectors,Javascript,Jquery,Css Selectors,我在rails视图中有动态数据,所有div都有相同的名称;'allData’,它有很多信息,所以我没有显示它,我想在单击show时显示特定的div,而不是所有div,但它显示所有div,我想能够只显示我单击的目标div $('.show')。在('单击',(事件)=>{ $('.allData').toggle(); $(event.currentTarget).closest('.allData').toggle(); }) 显示 100 “foobar所有数据都在这里” .......

我在rails视图中有动态数据,所有div都有相同的名称;'allData’,它有很多信息,所以我没有显示它,我想在单击show时显示特定的div,而不是所有div,但它显示所有div,我想能够只显示我单击的目标div

$('.show')。在('单击',(事件)=>{
$('.allData').toggle();
$(event.currentTarget).closest('.allData').toggle();
})

显示
100
“foobar所有数据都在这里”
.......
.......

您的
最近的
呼叫在正确的轨道上,但您没有完全正确地使用它。首先,要查找包含您的
的容器(
.eachData
),请使用:

let container = $(event.currentTarget).closest('.eachData');
然后在该
容器中搜索要切换的
.allData
,方法是:

因此,您可以使用
最近的
向上移动节点树,然后使用
查找
返回


顺便说一句,这是:

<div class='allData; display:none'>

应该是:

<div class="allData" style="display: none">


class
属性包含由空格分隔的CSS类名,原始CSS位于
style
属性中,并由分号分隔。

您在div上的内联样式应如下所示:

<div class="allData" style="display: none">
<div class="allData" style="display: none">
$('.show').on('click', function() {
    $(document).find('.eachData .allData:visible').hide('fast');
    $(this).parent().closest('.allData').show('fast');
});