Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 jQuery仅为当前父级打开元素_Javascript_Jquery - Fatal编程技术网

Javascript jQuery仅为当前父级打开元素

Javascript jQuery仅为当前父级打开元素,javascript,jquery,Javascript,Jquery,我正在处理这个问题。我唯一需要的是,当我单击ReadMore时,它将只显示其父地图,而不显示其他地图。我怎样才能做到这一点?我尝试了.each()函数 但是我仍然找不到解决方案。因为.map元素位于所单击元素的父元素内部,所以必须使用$(此)。父元素()到查找()要查找的元素: $('article').each(function(i){ $(this).find('a').click(function(){ $(this).parent().find('.map').toggle

我正在处理这个问题。我唯一需要的是,当我单击ReadMore时,它将只显示其父地图,而不显示其他地图。我怎样才能做到这一点?我尝试了.each()函数


但是我仍然找不到解决方案。

因为
.map
元素位于所单击元素的父元素内部,所以必须使用
$(此)。父元素()
查找()
要查找的元素:

$('article').each(function(i){
  $(this).find('a').click(function(){
     $(this).parent().find('.map').toggle();
  });
});
但以下内容对于您正在尝试实现的目标已经足够(无需反复阅读
文章
):

$('a.readmore').click(function(){
  $(this).parent().find('.map').toggle();
});
$('a.readmore')。单击(函数(){
$(this.parent().find('.map').toggle();
});
.map{
显示:无;
}
文章{
边框:2倍纯色灰色;
利润率:20px0;
}
.文本{
背景:灰色;
}

Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一个别有用心的厄洛斯,欧盟的通货。这是一个很好的例子。同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧。不要在大范围内浪费时间。这是一个很好的解决方案。没有尊严,没有责任。不含调味品,不含香料。非台球精英。
谷歌地图
阅读更多
Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一个别有用心的厄洛斯,欧盟的通货。这是一个很好的例子。同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧。不要在大范围内浪费时间。这是一个很好的解决方案。没有尊严,没有责任。不含调味品,不含香料。非台球精英。
谷歌地图
阅读更多
Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一个别有用心的厄洛斯,欧盟的通货。这是一个很好的例子。同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧。不要在大范围内浪费时间。这是一个很好的解决方案。没有尊严,没有责任。不含调味品,不含香料。非台球精英。
谷歌地图
阅读更多
您的解决方案

    <!DOCTYPE html>
<html>
<head>
    <title>Check the code</title>
<script type="text/javascript">
    $('class').each(function(i){
    $(this).find('a').click(function(){
         $this('.map').toggle();
    });
});
</script>
</head>
<body>
<div class="map">Map Location</div>

<script
  src="https://code.jquery.com/jquery-2.2.4.min.js"
  integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
  crossorigin="anonymous"></script>
</body>
</html>

检查代码
$(“类”)。每个(函数(i){
$(this)。查找('a')。单击(函数(){
$this('.map').toggle();
});
});
地图位置

您不必使用
。每个
功能。您可以使用此代码,因为您的
.map
元素不在单击的元素内:

$('article a').click(function () {
     $(this).closest("article").find('.map').toggle();
});

看看JSFIDLE链接和下面的代码 jsfiddle:


我把你的代码改了一点。这将首先隐藏所有地图,然后显示属于当前单击的地图。这样,在任何时候都只能看到一张地图

更新:修复了一个问题,因此您单击的地图将被切换,其他所有地图将被隐藏

$('article')。查找('a')。单击(函数(){
var thisMap=$(this.parents('article').find('.map');
$('article').find('.map').not(thisMap.hide();
thisMap.toggle();
});
.map{
显示:无;
}
文章{
边框:2倍纯色灰色;
利润率:20px0;
}
.文本{
背景:灰色;
}

Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一个别有用心的厄洛斯,欧盟的通货。这是一个很好的例子。同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧。不要在大范围内浪费时间。这是一个很好的解决方案。没有尊严,没有责任。不含调味品,不含香料。非台球精英。
谷歌地图
阅读更多
Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一个别有用心的厄洛斯,欧盟的通货。这是一个很好的例子。同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧。不要在大范围内浪费时间。这是一个很好的解决方案。没有尊严,没有责任。不含调味品,不含香料。非台球精英。
谷歌地图
阅读更多
Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一个别有用心的厄洛斯,欧盟的通货。这是一个很好的例子。同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧同侧。不要在大范围内浪费时间。这是一个很好的解决方案。没有尊严,没有责任。不含调味品,不含香料。非台球精英。
谷歌地图
阅读更多

为了清晰起见,将其分解为单击处理程序和事件创建者。 您遇到的问题是一个特殊性问题,您需要确保缩小活动范围。下面是一个示例(使用箭头函数以明确我们访问的是什么,而不是标准函数和“this”)

  • 选择事件目标
  • 遍历DOM直到父元素(
  • 在类为
    .map
  • 切换找到的类的可见性
  • constclickhandler=event=>{
    $(event.target)//获取事件目标('this'通常用于非箭头函数)
    .parent()//查找目标元素(项目)的父级
    .find('.map')//在父元素内查找类'.map'
    .toggle();//切换可见性
    }
    $('article')。每个((索引,元素)=>{
    $(元素)
    .find('a')//在文章中查找锚点
    .on('click',clickHandler);//单击触发事件
    });
    
    .map{
    显示:无;
    }
    文章{
    边框:2倍纯色灰色;
    利润率:20px0;
    }
    .文本{
    背景:灰色;
    }
    
    
    $('article a').click(function () {
         $(this).closest("article").find('.map').toggle();
    });
    
    $('article').each(function(i){
        $(this).find('a').click(function(){
    
                $(this).siblings().find(".map").toggle();
            });
    });
    
    $('.readmore').click(function(){
        $(this).parents('article').find('.map').toggle();
    });