数组中当前单击元素的索引

时间:2013-10-17 09:19:51

标签: javascript jquery html arrays

我想知道,如何记录数组当前单击元素的索引。

数组:

var cubesmixed = []; 
var cubes;
for(var i = 0; i < 149; i++) {
    cubes = paper.rect(Math.floor(Math.random()*2000), Math.floor(Math.random()*2000), 0, 0);
    cubesmixed.push(cubes);
}

click函数:

$(this).click(function() 
{ 
   console.log(index of current clicked element in cubesmixed); 
});

我在ready()函数中调用所有内容。

提前致谢!

3 个答案:

答案 0 :(得分:3)

我不确定我理解你需要什么(这个上下文中的数组是一个javascript对象,而不是DOM元素,所以我无法理解有人可以点击它)。

无论如何,请查看jQuery .index()方法:http://api.jquery.com/index/

用法:

console.log($(this).index())

希望有所帮助

<强>更新

查看完整解决方案的评论

答案 1 :(得分:0)

(将#items替换为您的选择器...)

$('#items').each(function(index,element){

   $(element).click(function(){
      console.log(index);
   });

})

这比.index() 更高效,如果 jQuery在呼叫上没有缓存。

.index() -> O(n) * invocationCount

与上述方法相反,初始设置仅为O(n)

答案 2 :(得分:0)

我检查了你的代码。您正在创建的每个多维数据集都有一个id。我刚刚将这段代码添加到你的代码中并且有效。

cubesmixed.forEach(function(cube){
    cube.click(function(){
        console.log("Cube clicked: " + cube.id); 
    });
});

这是小提琴: http://jsfiddle.net/Fraximus/jYGR9/