[英]how to toggle a specific div in javascript
我在Rails视图中有动态数据,所有div都具有相同的名称; 'allData',其中包含大量信息,因此我没有显示它,我想在单击“显示”时显示该特定div而不是所有div,但它显示所有div,我希望能够仅显示该目标div我点击了
$('.show'').on('click', (event) =>{ $('.allData').toggle(); $(event.currentTarget).closest('.allData').toggle(); })
<div class='eachData'> <div class='header'> <div class='show'> show</div> <div class='numberOfdata'> 100</div> </div> <div class='allData; display:none'> "foobar all data is here" </div> </div> <div class='eachData'> ....... </div> <div class='eachData'> ....... </div>
您closest
通话是在正确的轨道上,但您使用的不是正确。 首先,您要查找包含<div class="show">
的容器( .eachData
), .eachData
使用closest
的容器:
let container = $(event.currentTarget).closest('.eachData');
然后在该container
搜索要使用find
切换的.allData
:
container.find('.allData').toggle();
因此,您可以使用closest
方法使节点树上升,然后find
下降的节点。
顺便说一句,这:
<div class='allData; display:none'>
应该:
<div class="allData" style="display: none">
class
属性包含以空格分隔的CSS类名称,原始CSS包含在style
属性中,并以分号分隔。
您在div上的内联样式应如下:
<div class="allData" style="display: none">
然后尝试以下操作:
$('.show').on('click', function() {
$(document).find('.eachData .allData:visible').hide('fast');
$(this).parent().closest('.allData').show('fast');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.