在点击时询问数组元素的数量

时间:2013-10-16 20:41:26

标签: javascript html arrays

我想知道是否可以通过点击记录数组元素的数量。 我喜欢数组中超过100个元素:

var cubesmixed = []; 
var cubes;
for(var i = 0; i < 143; i++) {
    cubes = paper.rect(Math.floor(Math.random()*2000), Math.floor(Math.random()*2000), 0, 0);
    cubes.animate({ width: 25, height: 25 }, 500, "bounce");
    cubesmixed.push(cubes);
}

这些都是svg-objects。如上所述,我希望得到该元素的数量。

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

提前感谢!

3 个答案:

答案 0 :(得分:0)

尝试使用jQuery的$.inArray()方法

var that = this;
$(this).click(function() { 
    var indexInArray = $.inArray(that, cubes);
    console.log(indexInArray);
});

您将在数组中获得该元素位置的0索引,如果未找到匹配,则返回-1。

答案 1 :(得分:0)

每个数组都有一个length属性,它返回该数组中元素的数量:

 $(this).click(function() { 
        alert(cubes.length);
 });

答案 2 :(得分:0)

不知道你的实际HTML是什么样的,或者你是如何构建你的数组的,下面的工作(虽然显然需要根据你自己的特定用例进行定制):

// creating an array of 'li' elements:
var lis = $('li').map(function(){
    return this;
}).get();

// assigning a click-handler:
$('li').click(function(){
    // using Array.indexOf() to return the index of the 'this' node from the array:
    console.log(lis.indexOf(this));
});

JS Fiddle demo

并使用$.inArray()(对于那些未实现Array.indexOf()的浏览器):

$('li').click(function(){
    console.log($.inArray(this, lis));
});

参考文献: