【问题标题】:How to use variable (with value) as array name?如何使用变量(带值)作为数组名?
【发布时间】:2014-06-06 21:01:14
【问题描述】:

可以用 jQuery 实现吗?

http://jsfiddle.net/r9fY8/

jQuery 代码

var bla = [ "hello", "world", "!" ];
var foo = 'bla';
foo = new Array();
alert(foo[0]); // how to return 'hello'?

使用深拷贝(或任何方法):

var bla = [ "hello", "world", "!" ];
var foo = 'bla';
myarray = $.extend(true, {}, foo);
alert(myarray[0]); // how to return 'hello'?

@edit:

这个例子:

http://jsfiddle.net/rafuzeles/r9fY8/7/

html

<div class="mydiv" id="bla">Go</div>
<div class="mydiv" id="mydiv_name_of_array">Go 2</div>
<div class="mydiv" id="mydiv_some_array">Go 3</div>
<div class="mydiv" id="mydiv_another_array">Go 4</div>

jQuery

$('.mydiv').click(function () {
    var bla = ["hello", "world", "!"];
    var mydiv_name_of_array = ["hel", "wor", "ffs"];
    var mydiv_some_array = ["Hi", "Cat", "Dog"];
    var mydiv_another_array = ["Green", "Black", "Nice"];
    var mydiv_name_of_array = ["Air", "Plane", "Good"];

    var div_id = this.id;
    var myarray = $.extend(true, {}, div_id); // div_id = name of array

    alert(myarray[0]); // how to return value of array?
});

【问题讨论】:

  • 你想在这里做什么?
  • var foo = bla.slice(0)
  • 我更新帖子,查看示例jsfiddle.net/rafuzeles/r9fY8/7/,我需要使用 id 作为已经有值的数组的名称。
  • 我在下面更新了我的答案。我 99% 确定这就是你要找的东西。 :)

标签: jquery html arrays variables copy


【解决方案1】:

怎么样:http://jsfiddle.net/r9fY8/10/

$('.mydiv').click(function () {
    var id = $(this).attr('id'); // get id of clicked div
    var object_of_arrays = { // use an object so we can get named items
        bla : ["hello", "world", "!"],
        mydiv_name_of_array : ["hel", "wor", "ffs"],
        mydiv_some_array : ["Hi", "Cat", "Dog"],
        mydiv_another_array : ["Green", "Black", "Nice"]
    };
    var myarray = object_of_arrays[id]; // get the array with the same name as our id

    alert(myarray[0]); // returns hello, hel, Hi, or Green
});

我相信这可以解决您请求的问题。如果您不介意,请务必将此答案标记为正确 - 尝试提高我的 StackOverflow 分数。 :)

【讨论】:

【解决方案2】:

//#1 在 foo = 'bla' 中带有单个 qoutes,如果从中删除单个 qoutes,它不会被视为变量而是字符串

//#2 这需要完全删除,因为它正在清除 foo 中的所有内容,因此当它发出警报 foo 时它是空的

http://jsfiddle.net/r9fY8/1/

var bla = [ "hello", "world", "!" ];
var foo = 'bla'; //#1
foo = new Array(); //#2
alert(foo[0]); // how to return 'hello'?

【讨论】:

  • var foo = bla; (bla 是变量), var foo = somevalue,如何使它工作? jsfiddle.net/rafuzeles/r9fY8/4
  • jsfiddle.net/r9fY8/8 我知道这不是最好的方法,但是这是您在这里寻找的功能吗?
  • 几乎是这样,数组在文件 .js 中,我无法将它们添加为 div 的属性。
  • 然后您可以将数组解析为字符串并使用 javascript 将它们插入到您希望它们绑定到的 html 元素的 value 属性中。我只是无法想象没有更好的方法来做到这一点。或者你可以只使用一个多维 JS 数组来跟踪你想要绑定到什么 JS 数组的 html 元素。这可能是一种更清洁的方法。如果你能在某个地方把 js 文件交给我,我可能会发生一些神奇的事情。
  • 当然,但这会占用你很多时间,所以我发布了问题摘要...我正在使用 github.com/syamilmj/Options-Framework 开发 Wordpress 主题,并带有基于此 wptheming.com/2012/02/color-palettes 的选项,但是我添加了更多选项来更改其他字段(如 txt、输入等),基于单击管理页面上的链接(我将皮肤添加到主题,我需要一键更改所有选项关闭主题,但对于每个ID 我需要不同的值,我有 300 多个皮肤)。
【解决方案3】:

首先你要通过 javascript 创建一个数组。

var bla = [ "hello", "world", "!" ];

您正在初始化一个变量并分配一个字符串值,例如:

var foo = 'bla';

您正在将 foo 的值分配给一个空数组

foo = new Array();

然后

alert(myarray[0]);

它应该返回未定义的。

这样就可以了。

var bla = [ "hello", "world", "!" ];
var foo = bla;
alert(foo[0]);

这里是小提琴:http://jsfiddle.net/4U3sN/

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多