单击时检索jQuery数组元素的值

时间:2014-06-04 22:57:44

标签: javascript php jquery html css

我正在尝试使用var“next”来根据点击的div的索引将id存储在数组“images”中。我需要这样做,因为div id可以是基于php的任何东西。

的JavaScript

var currentImage = 1;
var numImages = 0;
var images = new Array();

$(document).ready(function() {

    $('.gallerypreview').each(function(i) {
        images.push($(this).attr("id"));
    });

    $('.gallerypreview').click(function() {
        var current = $(this).index();
        alert(current);
    });

    $('.gallerypreview').each(function() {
        numImages++;
    });

    $('.galleryrightbtn').click(function() {
        moveLeft();
        current++;
        var next = $(current).get(this);
        $('.gallerylightbox').hide(300);
        $(next).show(300);
    });

    $('.galleryleftbtn').click(function() {
        moveRight();
        current--;
        var next = $(current).get(this);
        $('.gallerylightbox').hide(300);
        $(next).show(300);
    });

});

function moveLeft() {

    if ((currentImage + 1) == numImages) {
        $('.galleryrightbtn').css('display', 'none');
        $('.galleryleftbtn').css('display', 'block');
    } else {
        $('.galleryrightbtn').css('display', 'block');
        $('.galleryleftbtn').css('display', 'block');
    }
    if (currentImage < numImages) {

        currentImage++;
    }
}

function moveRight() {

    if ((currentImage - 1) == 1) {
        $('.galleryleftbtn').css('display', 'none');
        $('.galleryrightbtn').css('display', 'block');
    } else {
        $('.galleryleftbtn').css('display', 'block');
        $('.galleryrightbtn').css('display', 'block');
    }

    if (currentImage <= numImages) {
        currentImage--;
    }
}

HTML

<div class="gallerypreview" id="<?php echo $idvalue; ?>"></div>
<div class="gallerypreview" id="<?php echo $idvalueagain; ?>"></div>
<div class="gallerypreview" id="<?php echo $idvaluewhoknows; ?>"></div>

我想知道.get是否是正确使用的jQuery处理程序。

1 个答案:

答案 0 :(得分:0)

正如人们在评论中提到的,$.get()是使用GET HTTP方法的AJAX请求的包装器,也许你不需要一个数组来完成你想要的东西。

但是,假设您只想获取存储在图像数组中的值,您可以使用:

var next = images[current];

您可以使用.eq()过滤器在给定索引处获取所需的元素,而无需将所有内容存储在数组中,请在代码中尝试:

$('.gallerypreview').click(function() { // You could just use $(this).attr('id'); to get the id of the clicked div // the code below is for the sake of example var current = $(this).index(); var galleryPreviewId = $( '.gallerypreview' ).eq( current ).attr( 'id' ); alert( "The id of the div is: " + galleryPreviewId ); });

$( '.gallerypreview' ).eq( index )将匹配的元素集(具有类gallerypreview的所有元素)减少到指定索引处的元素。

注意:获取元素的id后,您可能需要使用前缀#来显示其id等于“next”的DOM元素:$( '#' + next ).show()

有关详情,请参阅.eq() filter