【问题标题】:Use id as an array's name (jQuery)使用 id 作为数组的名称 (jQuery)
【发布时间】:2011-03-15 23:47:48
【问题描述】:

我们在块内有链接:

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

不同链接上的 ID 从不重复。

尝试在 javascript 中为此块的每个链接创建分隔数组。问题是,每次更改 id 时,我都必须即时更改。

我们应该得到这个:

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

链接的 id = 新数组的名称。

1) 如何编码?

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

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

行不通,什么是真正的方法来达到这个目的?

【问题讨论】:

  • 数组有什么用?它们需要在加载时出现在页面上还是动态创建?

标签: javascript jquery html css arrays


【解决方案1】:

您不能动态创建vars,但您可以为对象动态添加属性。因此为此目的创建一个“主”对象:

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

像这样推送到数组:

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

【讨论】:

  • 这是正确的方式,但其他答案是“请求”方式:) - 请注意,如果需要,您还可以向“主”添加属性。
  • @马克。同意。拜托,没有人真正实施过我给出的例子:)我会觉得影响不好。
【解决方案2】:

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


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

您可以类似地使用 eval 来推送。

Box9 的答案在 IMO 上更为明智。

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

【讨论】:

  • +1 也作为“请求”并说明更好的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-07
  • 2010-11-28
  • 2017-11-14
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2015-05-12
相关资源
最近更新 更多