Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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之外的div内的元素_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 访问当前div之外的div内的元素

Javascript 访问当前div之外的div内的元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这可能是一个非常简单的方法,但是我还没有弄明白 我的方法是获取当前“条目”的“img预览”中所有具有“扩展图像”类的元素 这是我的html: <div class="entry"> <div class="img-preview"> <img> <img class="expanded-image" style="display:none;"> </div> <div class="content">

这可能是一个非常简单的方法,但是我还没有弄明白

我的方法是获取当前“条目”的“img预览”中所有具有“扩展图像”类的
元素

这是我的html:

<div class="entry">
 <div class="img-preview">
    <img>
    <img class="expanded-image" style="display:none;">
 </div>

 <div class="content">
    [..]
    [..]
    <span class="more-text"></span>
    [..]
    [..]
 </div>
</div>

首先,您根本不需要
each()
,因为您可以将
click()
事件处理程序应用于单个选择器中的所有元素

要解决您的问题,您可以使用
closest()
查找最近的父级
。将
元素输入到单击的
。更多文本
。从那里您可以
find()
所有
.expanded image
元素。试试这个:

$('.content span.more-text').click(function(event) {
    var $imgs = $(this).closest('.entry').find('.img-preview .expanded-image');
    // work with $imgs here...
});

首先,您根本不需要
each()
,因为您可以将
click()
事件处理程序应用于单个选择器中的所有元素

要解决您的问题,您可以使用
closest()
查找最近的父级
。将
元素输入到单击的
。更多文本
。从那里您可以
find()
所有
.expanded image
元素。试试这个:

$('.content span.more-text').click(function(event) {
    var $imgs = $(this).closest('.entry').find('.img-preview .expanded-image');
    // work with $imgs here...
});

最近的
上一个
查找

$('span.more-text').click(function(event) {
     $(this).closest('.content').prev().find('.expanded-image');
  });

最近的
上一个
查找

$('span.more-text').click(function(event) {
     $(this).closest('.content').prev().find('.expanded-image');
  });
您可以使用冒泡查找选择器中给定的父项。然后,您可以从那里向下导航到所需的元素

 $(this).closest('.entry').find('.img-preview .expanded-image');
正如Ron所建议的,你不必循环然后绑定点击事件。你可以简单地做

$('.entry .content .more-text').click(function(){
   $(this).closest('.entry').find('.img-preview .expanded-image');
})
您可以使用冒泡查找选择器中给定的父项。然后,您可以从那里向下导航到所需的元素

 $(this).closest('.entry').find('.img-preview .expanded-image');
正如Ron所建议的,你不必循环然后绑定点击事件。你可以简单地做

$('.entry .content .more-text').click(function(){
   $(this).closest('.entry').find('.img-preview .expanded-image');
})