2016-09-13 46 views
0

好的,这听起来可能听起来很模糊,但我会尽力解释一下。检查数组是否包含某个字符串,然后选择该项目

我有一个图像,我收集它的来源与.attr('src')功能。此图片是其他5张图片之一,全部在同一个div中。到目前为止,我收集了两件事:

  1. var src,其中包含我单击的图像的URL。
  2. var array,一个包含div中所有图像的数组。

下面是HTML结构:

<div class="images"> 
<img src="path1" /> 
<img src="path2" /> 
<img src="path3" /> 
<img src="path4" /> 
<img src="path5" /> 
</div> 

想象一下,我点击了第三图像。变量'src'将包含值'path3'。我想,当我点击页面底部的箭头图标时,该值将切换到数组中的前一项“path2”。

我该怎么做?

+0

当箭头图标被点击时,选定的图像src将与前一个切换?你可以编辑你的问题,并给我们关于你的预期输出的想法。 –

+0

使用jquery'prev'函数,如[this](https://jsfiddle.net/krxx7v7d/1/) – tewathia

回答

1

假设你的变量srcarray

var index = array.findIndex(function(img) { 
    return img.src === src 
}) 

var elementYouWant = array[index - 1] 

您可以添加一个检查,如果index是零,因为在这种情况下index - 1-1elementYouWantundefined。为array.length

0

假设所有的图像同样被放置在同一个父<div>元素,你可以使用jQuery的.prev()访问特定元素的直接前一个兄弟:

function getPrevSrc (currentSrc) { 
    // Get DOM element with the given src attribute 
    // could be optimized by providing a parent element 
    var $currentImg = $("[src='" + currentSrc + "']"); 

    // Get previous sibling 
    // Note that using this on the first image is an edge case, 
    // so you have to handle it accordingly to your needs 
    var $prevImg = $currentImg.prev(); 

    // Return previous src 
    return $prevImg.attr("src"); 
} 
0
var imageArray; //Ur images array; 
var index=imageArray.indexOf(src); 
if(index>0) { 
    src=imageArray[index-1]; 
} 
0

你应该试试下面代码:

$('img').click(function() { 
     alert($(this).attr('src')); 
    alert($(this).prev('img').attr('data-value')); 
}); 

您可以点击这里:https://jsfiddle.net/xeq4yn0z/

相关问题