使用jquery索引检索存储在数组中的值

时间:2014-06-04 21:19:28

标签: javascript jquery html css

当用户点击div标记时,我想在var id中存储相应的current值,以便稍后可以使用它来迭代到该索引,并且这样div就可以显示和隐藏了。

HTML

<div class="gallerypreview" id="1"></div>
<div class="gallerypreview" id="2"></div>
<div class="gallerypreview" id="3"></div>

JS

var images = new Array();

$(document).ready( function(){

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

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

});

如何从这个点击的div中检索div id?我可以获得索引号,但我无法使用任何使用索引#的函数找到索引的值。

4 个答案:

答案 0 :(得分:0)

这是你在找什么?

$('.gallerypreview').click(function() {
var current = $(this).attr("id");
});

单击回调函数$(this)内部引用了单击的特定DOM对象。因此,一个简单的.attr("id")将获得所点击的div的id(存储在变量current中)。

希望有所帮助

答案 1 :(得分:0)

var images = new Array();

$(function() {

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

   var current = null;
   $('.gallerypreview').click(function() {
      current = $(this).attr('id');
   });
});

答案 2 :(得分:0)

http://jsfiddle.net/7fPL5/

解决点击问题,并将ID更改为有效的HTML / CSS ID(stackoverflow.com/a/79022/1418261)。

JS

var images = new Array();

$(document).ready( function(){

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

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

});

HTML

<div class="gallerypreview" id="one">1</div>
<div class="gallerypreview" id="two">2</div>
<div class="gallerypreview" id="three">3</div>

答案 3 :(得分:0)

根据变量current的范围,适当地声明它:

var images = new Array(), current;

然后更改以下内容:

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

致:

$('.gallerypreview').on('click', function() {
    current = this.id;
});

JS FIDDLE DEMO