从变量中获取数组值

时间:2014-02-18 12:24:17

标签: jquery arrays

我想根据ul元素的索引获取数组的值。我会试着解释一下自己:

var descgal0 = ["3456", "463", "6557", "5242"];
var descgal1 = ["gfdgfd" "gfgdfg", "gfdg", "gfdg"];
$("#gal-content-all section ul li img").click(function() {
   var index = $(this).parent().index();
   var indexul = $(this).parent().parent().parent().index();
});

问题是

$("#gal-zoom h4").text(descgal0[index]); //WORKS!
 $("#gal-zoom h4").text("descgal"+indexul+[index]); //DOESN'T WORK :(

我怎么能得到数组[li]值取决于我点击的ul ...? 谢谢!!!!

4 个答案:

答案 0 :(得分:1)

您可以使用数组,因为您有连续索引

var descgals = [
    ["3456", "463", "6557", "5242"],
    ["gfdgfd", "gfgdfg", "gfdg", "gfdg"]
];
$("#gal-content-all section ul li img").click(function () {
    var index = $(this).parent().index();
    var indexul = $(this).parent().parent().parent().index();
    $("#gal-zoom h4").text(descgals[indexul][index]);
});

答案 1 :(得分:0)

考虑您的数据模型eval似乎是唯一的方法:

$("#gal-zoom h4").text(descgal0[index]); //WORKS!
$("#gal-zoom h4").text(eval("descgal"+indexul+"["+ index + "]")); //SHOULD WORK :D

但是,如果您可以控制数据模型,那么您可以使用比eval更漂亮的东西,如下所示:

var descgal = [["3456", "463", "6557", "5242"],["gfdgfd" "gfgdfg", "gfdg", "gfdg"]];

$("#gal-zoom h4").text(descgal[indexul][index]);

答案 2 :(得分:0)

你必须使用eval,试试这个:

$("#gal-zoom h4").text(eval("descgal" + indexul + "[" + index + "]"));

而不是:

$("#gal-zoom h4").text("descgal"+indexul+[index]);

答案 3 :(得分:0)

试试这种方式

$("#gal-zoom h4").text(descgal0[index]); 
 arrName="descgal"+indexul;
$("#gal-zoom h4").text(arrName[index]); 

快乐编码:)