Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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 从上一个和下一个父同级获取属性,并维护顺序_Javascript_Jquery - Fatal编程技术网

Javascript 从上一个和下一个父同级获取属性,并维护顺序

Javascript 从上一个和下一个父同级获取属性,并维护顺序,javascript,jquery,Javascript,Jquery,我的html结构如下: <a href="/target"><img src ='image1.png' /></a> <a href="/target1"><img src ='image2.png' /></a> <a href="/target2"><img id="img3" src ='image3.png' /></a> <a href="/target3"><

我的html结构如下:

<a href="/target"><img src ='image1.png' /></a>
<a href="/target1"><img src ='image2.png' /></a>
<a href="/target2"><img id="img3" src ='image3.png' /></a>
<a href="/target3"><img src ='image3.png' /></a>
<a href="/target4"><img src ='image5.png' /></a>

假设有人点击了img3。 我需要从上一张和下一张图像中获取所有
href
属性

最终的目标是得到一个列有所有src的数组。从图像开始,我点击

我的想法是,为了得到上一个HREF,当前的一个已知,下一个已知。 有了这些,我想构建一个数组

重要的是,要维持人权高专办的秩序

一个示例(单击了img):

阵列应如下所示:

<a href="/target"><img src ='image1.png' /></a>
<a href="/target1"><img src ='image2.png' /></a>
<a href="/target2"><img id="img3" src ='image3.png' /></a>
<a href="/target3"><img src ='image3.png' /></a>
<a href="/target4"><img src ='image5.png' /></a>
var hrefs=[target2,target3,target4,target,target1]

单击了另一个示例(image5.png):

HREF的数组应该是这样构建的

var hrefs=[target4,target,target1,target2,target3]

试着想象一下,图像被放置在一个圆上。我说的顺序是顺时针的

也许有比我更好的方法

另一个想法是通过将已知元素的索引设置为0来构建包含所有HREF和reindex(构建新索引)的数组

欢迎任何帮助

试试这个

$('img').on('click', function(e){

    var $this = $(this),
        $closest = $this.closest('a'),
        $prev = $closest.prevAll('a'),
        $next = $closest.nextAll('a'),
        result = [$closest[0]].concat($next.get()).concat($prev.get().reverse()),
        hrefs = $(result).map(function(i, e){ return e.href; }).get();

    console.log(result, hrefs);

    e.preventDefault();
});

也许不是最漂亮的解决方案,但是嘿


图像源数组更新:

我需要获取所有的HREF属性
最终目标可能是获取一个列有所有src的数组
,所以您需要HREF或src吗?@Kevin B请查看我的编辑。这会更有意义,谢谢。我将从
hrefs
数组中清除我的注释。@user998163。但是您需要图像源,对吗?它是一种Lightbox函数,因此href属性可以,因为它指向图像的大版本。@user998163使用img
src
版本进行更新,以备您需要。@user998163很高兴提供帮助!