javascript-用数字填充数组

前端之家收集整理的这篇文章主要介绍了javascript-用数字填充数组 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有这样的情况:
有8个div块,其ID如’rateN_wrapper’,其中’N’是div的数目:

<div id="rate1_wrapper">
  <a href="#" id="0_1">...</a>
  <a href="#" id="0_2">...</a>
  <a href="#" id="0_3">...</a>
</div>

<div id="rate2_wrapper">
  <a href="#" id="1_1">...</a>
  <a href="#" id="1_2">...</a>
  <a href="#" id="1_3">...</a>
</div>

...

var ratings = new Array();
for (i=0; i < 8; i++)
{
    ratings[i] = -1; // Default is unrated

}

for (i=0; i < 8; i++)
{
    $('#rate' + i + '_wrapper a').click(function() {
        ratings[i] = parseInt( $(this).attr('id').split('_')[1] );
        console.debug(ratings);
    });
}

我的工作是使用链接的ID(已解析)在需要的地方填充数组.但是它总是只更改数组(8)的最新元素.为什么?

最佳答案
这是由for循环中的关闭引起的问题.您可以通过解析父ID来查找ID:

for (i=0; i < 8; i++)
{ 
  $('#rate' + i + '_wrapper a').click(function() {
    var parentId = $(this).parent('div').attr('id');
    var index = /\d/.exec(parentId);
    ratings[index] = parseInt( $(this).attr('id').split('_')[1] );
  });
}

猜你在找的jQuery相关文章