如何在javascript中切换特定div
我在rails视图中有动态数据,所有div都有相同的名称;'allData’,它有很多信息,所以我没有显示它,我想在单击show时显示特定的div,而不是所有div,但它显示所有div,我想能够只显示我单击的目标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所有数据都在这里” .......
$('.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');
});