javascript – 使用jquery旁边找到“嵌套”兄弟

也许有一个简单的解决方案,但我无法弄清楚.

我有一堆像这样坐着的图像:

<div class='image-bar'>
    <span>
      <img class='my-image' src='blah1' id='1'>
    </span>
    <span>
      <img class='my-image' src='blah2' id='2'>
    </span>
    <span>
      <img class='my-image' src='blah3' id='3'>
    </span>
</div>

给定图像的id,我需要使用jQuery找到它的下一个和上一个图像.

以2为例,我尝试了下面的图片:

$('.image-bar').find('.my-image[id="2"]').next();

我想直到我的’属性等于’选择器我是正确的,但是因为id为3的图像并不完全是兄弟,所以next()不起作用.我怎么处理这个?任何指针都非常感谢!

最佳答案 这不会起作用,因为元素被包裹在跨度中,您需要相对于图像的父亲而言.

var next = $('.image-bar').find('.my-image[id=2]').parent().next().find('img');
var prev = $('.image-bar').find('.my-image[id=2]').parent().prev().find('img');

编辑

假设您可能有更多图像要处理并且对相同的功能感兴趣,您可以执行以下操作:

var elementId = "2";
var next = $('.image-bar').find('.my-image[id=' + elementId + ']').parent().next().find('img');
var prev = $('.image-bar').find('.my-image[id=' + elementId + ']').parent().prev().find('img');
点赞