从.attr获取变量名称

时间:2014-12-11 09:36:35

标签: javascript jquery arrays

我有两个街区

<div data-array="array1" class="div-to-click">DIVtoClick</div>

<div class="div-to-append"></div>

并有一个数组

array1 = [ 1, 2, 3, 4, 5 ];

我可以以某种方式从.attr('data-array') onclick获取变量名称并执行类似

的操作
array1.forEach(function( elem ){
    $('div-to-append').append( '<div class="number">'+elem+'</div>' );
}); 

2 个答案:

答案 0 :(得分:2)

将其附加到对象。由于全球环境受到污染,因此不建议全球化。所以制作你自己的对象和

var myObj = {
   array1 = [ 1, 2, 3, 4, 5 ],
   //...
}

然后你可以使用括号表示法。

$('.div-to-click').click(function(){
   myObj[$(this).data("array")].forEach(function( elem ){
       $('div-to-append').append('<div class="number">' + elem + '</div>' );
   }); 
});

答案 1 :(得分:2)

您可以将数组定义为对象的属性,然后使用括号表示法来检索它们。像这样:

var obj = {
    array1: [ 1, 2, 3, 4, 5 ],
    array2: [ 6, 7, 8, 9, 10 ]
}

$('.div-to-click').click(function() {
    $.each(obj[$(this).data('array')], function(i, item){
        $('div-to-append').append('<div class="number">' + item + '</div>');
    }); 
});