Javascript 从另一个数组访问JSON数组项
我是JS n00b,所以我很抱歉问了这么简单的问题。(非常简单,so的其余部分提供了比我需要的更复杂的答案。)我有一个JSON数组,如下所示:Javascript 从另一个数组访问JSON数组项,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我是JS n00b,所以我很抱歉问了这么简单的问题。(非常简单,so的其余部分提供了比我需要的更复杂的答案。)我有一个JSON数组,如下所示: var comics = {"spider":"Spiderman", "bat":"Batman", "super":"Superman", "aqua":"Aquaman"}; 我想从另一个数组访问该数组中的项,如下所示: var childhood_heroes = {"fire":"Firefighters", "jordan":"Michae
var comics = {"spider":"Spiderman", "bat":"Batman", "super":"Superman", "aqua":"Aquaman"};
我想从另一个数组访问该数组中的项,如下所示:
var childhood_heroes = {"fire":"Firefighters", "jordan":"Michael Jordan", "superhero":[comics.super, comics.bat]};
我使用jQuery将其附加到HTML中的一个div中,并使用:
$('#which_heroes').click(function() {
$('#jobs').html(childhood_heroes.fire);
$('#sports').html(childhood_heroes.jordan);
$('#supers').html(childhood_heroes.superhero);
});
前两个在第三个不在时工作。第三者的出现打破了一切。我做错了什么?这个
$('body').html([“一”,“二])代码>
产生
未捕获错误:未找到错误:DOM异常8
因此,您的问题是将字符串数组传递给jQuery.html()
函数,这显然不能很好地处理它。在你通过它之前把它变成一根绳子,比如
$('#supers').html(childhood_heroes.superhero.join(', '));
应该有用
中的.html()
的两个有效参数是
在访问可能需要字符串的数组时,可以使用join()将superhero数组中的所有条目放入字符串:
$('#supers').html(childhood_heroes.superhero.join(", "));
确保漫画
在儿童英雄
之前已初始化
不要吹毛求疵,但您定义的东西都不是JavaScript或JSON数组。它们只是非常松散意义上的“数组”。这一对:“super”:“Superman”
会引起问题,因为super
是保留的,所以漫画。super
至少会在IE中引发错误
重命名它,或者使用comics[“super”]
符号。注意,如果superhero
是[“super”,“bat”]
,而不是显式引用,那么你的JSON将不那么耦合。将[comics.super,comics.bat]
替换为comics.super+'+comics.bat
,它不是“JSON数组”。这是一个JavaScript对象。Jason-我不确定“少耦合”是什么意思,但我肯定会查一下,谢谢!Val-即使数组中只有一个对象,我也会遇到这个问题,所以这可能不会有什么帮助。但是谢谢!菲利克斯-嗯,谢谢,但这仍然不能解决我的问题problem@Heather:这就是我发表评论的原因。如果我想解决你的问题,我会提供一个答案;)澄清术语也很重要!我被你的编辑弄糊涂了,你是说JavaScript变量、对象、数组和jQuery代码不是JavaScript吗?你也可以精确地说它们是对象。@Robert,我是说{“蜘蛛”:“蜘蛛侠”,…}
不是OP中断言的JSON数组。抱歉,我误解了其意图是针对标记的,说只有阵列才是合法的标签。谢谢你把它清理干净。我的错。就像我说的,我只是在学习。关联数组是我使用过的所有数组。一个“适当的”数组有什么不同?因为我的示例完全是虚构的,与我的实际代码无关,所以我很确定这不是问题所在。但是谢谢。这非常有效,我真的很感谢你解释为什么我所做的不起作用。非常感谢。
$('#supers').html(childhood_heroes.superhero.join(", "));