我们在街区内有链接:
<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
它不起作用,为此目的的真正方法是什么?
答案 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