Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery查找最近的父级Div_Jquery_Next_Siblings - Fatal编程技术网

jQuery查找最近的父级Div

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

我试图通过以下场景学习jQuery。为此,在阅读了多个SO问题后,我尝试了以下jQuery;但它不起作用

$(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()