Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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
Javascript 在父级中选择一个div,向上两级?_Javascript_Jquery - Fatal编程技术网

Javascript 在父级中选择一个div,向上两级?

Javascript 在父级中选择一个div,向上两级?,javascript,jquery,Javascript,Jquery,我有一些隐藏部分,单击箭头时会展开。箭头过去是主“questionBlock”div的一部分,因此我们使用$content=$arrow.sibles(.questionBlockExpand)选择要展开的部分。但现在,随着一些必需的布局更改,箭头现在与标题分开,标题位于另一个名为“questionBlockTitle”的div中 我在选择“questionBlockExpand”时遇到问题,它现在在父div 2级别中 下面的JQuery代码是我通过第二个父级选择div的尝试之一 我做错了什么

我有一些隐藏部分,单击箭头时会展开。箭头过去是主“questionBlock”div的一部分,因此我们使用
$content=$arrow.sibles(.questionBlockExpand)
选择要展开的部分。但现在,随着一些必需的布局更改,箭头现在与标题分开,标题位于另一个名为“questionBlockTitle”的div中

我在选择“questionBlockExpand”时遇到问题,它现在在父div 2级别中

下面的JQuery代码是我通过第二个父级选择div的尝试之一

我做错了什么

谢谢

HTML:

}))

您可以使用
closest()
遍历容器
questionBlock
div使用
find()

或者


$content=$arrow.closest('.questionBlock')。查找(“.questionBlockExpand”)我尝试使用.next()来实现这一点,但没有成功。我将尝试使用最接近的,但不确定这样做是否是最佳实践。由于页面上将有多个类似的部分,因此不确定如何选择最接近的部分。您使用parent()进行的编辑突然变得有意义了!尝试使用Parent()。兄弟姐妹,它正是我尝试的方式。但是你似乎是从你的答案中删去了这一条。@user2924019,我已经把它加了回去,有不同的方法可以遍历DOM。非常感谢。只要允许,我会尽快标记为正确。
<div class='questionBlock testing123 '>
    <div class='questionBlockTitle'><span class='sectionQuestionBlockNumber'>1</span><span class='sectionQuestionBlockTitle'>title text</span>
        <div class='expandArrow downArrow'>Expand Arrow Image</div>
    </div>
    <div class='questionBlockExpand'>Section to expand</div>
</div>
$(".expandArrow").click(function () {

$arrow = $(this);
$content = $arrow.parent().parent(".questionBlockExpand");
//open up the content needed - toggle the slide- if visible, slide up, if not slidedown.
$content.slideToggle(500, function () {
    //execute this after slideToggle is done
    //change class of header based on visibility of content div
    if ($content.is(":visible")) {
        $arrow.addClass("upArrowBlock");
        $arrow.removeClass("downArrowBlock");
    } else {
        $arrow.addClass("downArrowBlock");
        $arrow.removeClass("upArrowBlock");
    }
});
$content = $arrow.closest('.questionBlock ').find(".questionBlockExpand");
$content = $arrow.closest('.questionBlockTitle').next(".questionBlockExpand");
//$content = $arrow.parent().next(".questionBlockExpand");
$content = $arrow.closest('.questionBlockTitle').siblings(".questionBlockExpand");
//$content = $arrow.parent().siblings(".questionBlockExpand");