使用id作为数组的名称(jQuery)

时间:2011-03-15 23:47:48

标签: javascript jquery html css arrays

我们在街区内有链接:

<div>
    <a href="#" id="james">text</a>
    <a href="#" id="katy">text</a>
    <a href="#" id="julia">text</a>
</div>

不同链接上的ID永远不会重复。

尝试在javascript中为此块的每个链接创建分隔数组。问题是,每次更改时,我都必须动态地执行此操作。

我们应该得到这个:

var james = [];
var katy = [];
var julia = [];

Link的id =新数组的名称。

1)如何编码?

2)如何使用链接的id来调用数组?所以,我们创建了它们,但在javascript中我会做类似

的事情
$(this).attr("id").push("text"); // on link hover 

它不起作用,为此目的的真正方法是什么?

2 个答案:

答案 0 :(得分:3)

您无法动态创建var,但可以动态地向对象添加属性。因此,为此目的创建一个“主”对象:

var master = {};
$('a').each(function () {
    master[this.id] = [];
});

像这样推送到数组:

master[this.id].push('text');

答案 1 :(得分:1)

虽然我完全不知道您为什么要在单独的数组中执行此操作,但您可以使用javascript的eval()方法创建数组(以及您想要的任何其他内容)。


$(document).ready(function(){
  $("a").each(function(){
    eval("var " + $(this).attr("id") + " = new Array()")
  })
})

你可以使用eval来推送。

Box9的答案虽然更加明智。

作为来源:http://www.hiteshagrawal.com/javascript/dynamic-variables-in-javascript