Javascript 从上一个和下一个父同级获取属性,并维护顺序
我的html结构如下: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"><
<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使用imgsrc
版本进行更新,以备您需要。@user998163很高兴提供帮助!