jQuery查找最近的父级Div
我试图通过以下场景学习jQuery。为此,在阅读了多个SO问题后,我尝试了以下jQuery;但它不起作用jQuery查找最近的父级Div,jquery,next,siblings,Jquery,Next,Siblings,我试图通过以下场景学习jQuery。为此,在阅读了多个SO问题后,我尝试了以下jQuery;但它不起作用 $(this).closest('.viewLogText').parent().find('.reportLog').css("display", "none"); 场景: 在具有Css类“repeaterRecord”的div中有三个子div元素。子div使用css类-repeaterIdentifier、viewLogTitle和reportLog 有两个具有此结构的div(具有Cs
$(this).closest('.viewLogText').parent().find('.reportLog').css("display", "none");
场景:
在具有Css类“repeaterRecord”的div中有三个子div元素。子div使用css类-repeaterIdentifier、viewLogTitle和reportLog
有两个具有此结构的div(具有Css类“repeaterRecord”的div)
viewLog类的div如下所示
<div class="viewLogTitle">
<div class="viewLogText">
View Report Log
</div>
<div>
<img alt="Expand" src="Images/PlusIcon.GIF" class="expandLogIcon" />
<img alt="Collapse" src="Images/MinusIcon.GIF" class="collapseLogIcon" />
</div>
</div>
查看报告日志
单击collapseLogIcon图像时,我需要用“reportLog”类(与“viewLogTitle”处于同一级别)隐藏(仅)最近的div。我们如何使用jQuery来实现它
更新的工作示例:
及
及
参考:
您可以使用
.sides()
查找最近的div
我建议使用:
$(this).closest('.viewLogTitle').next('.reportLog').hide();
请注意,传递给next()
方法('.reportLog'
)的筛选器意味着viewLogTitle
元素的下一个同级元素只有在与该选择器匹配时才会受到影响。如果.viewLogTitle
的下一个同级始终是目标(HTML不会更改),则该筛选器是不必要的,可能会被忽略
或者,如果它们不总是连续跟随(但“最近的”总是受影响的一个),则针对以下兄弟姐妹:
$(this).closest('.viewLogTitle').nextAll('.reportLog:first').hide();
或者对于前面的同级(如果.reportLog
位于.viewLogTitle
之前):
参考资料:
兄弟姐妹()
方法:
$(this).closest('.viewLogText').siblings('.reportLog').hide()
您还可以尝试与
.css(“显示”、“无”)相同的hide()
方法
下一个中的过滤选择器不需要一个元素,就其本身而言,这是正确的;但是,通过过滤器的目的是考虑下一个兄弟可能不是期望的目标的时间。不过,公平地说,我应该解释一下这个意图。编辑如果不是这样的话,那么next
就不合适了:是的,我发表评论的唯一原因是,每当我看到next
与过滤器一起使用时,都是因为作者误解了next
next(filter)
直观地看,它会找到与filter
匹配的下一个元素,但它只会获取下一个元素同级,如果它与过滤器匹配,则返回它,否则什么也不返回。同意;你的评论是对的,我的解释完全是一个明显的遗漏
$(this).closest('.viewLogText').siblings('.reportLog').hide()