Javascript 为什么我的对象集合上的每个循环都很简单,但不起作用(JQuery)?

Javascript 为什么我的对象集合上的每个循环都很简单,但不起作用(JQuery)?,javascript,jquery,foreach,Javascript,Jquery,Foreach,我有一个对象集合,通过EL在JavaScript/JQuery中检索(至少我是这么认为的)。我将变量命名为“国家”。调用alert(国家)时,我的输出与预期一致。我应该有四个要素 我以为这是世界上最简单的事情,但不知为什么,它就是不起作用。。。帮忙 var countries = "${requestScope.countries}"; 警报(国家/地区)提供以下输出: [beans.CountryBean@(id#), beans.CountryBean@(id#), beans.Coun

我有一个对象集合,通过EL在JavaScript/JQuery中检索(至少我是这么认为的)。我将变量命名为“国家”。调用alert(国家)时,我的输出与预期一致。我应该有四个要素

我以为这是世界上最简单的事情,但不知为什么,它就是不起作用。。。帮忙

var countries = "${requestScope.countries}";
警报(国家/地区)提供以下输出:

[beans.CountryBean@(id#), beans.CountryBean@(id#), 
beans.CountryBean@(id#), beans.CountryBean@(id#)]
@Aarondigula提出了以下语法:

$.each(countries, function(index, value) { ... });
但这段几乎相同的代码没有输出

$.each(countries, function(index, value) { alert(index + "here");});
我假设它会产生4个警报,这是错的吗?

使用
$。每个(国家,函数(索引,值){…})

可以迭代所有类型的内容(数组、对象和JQuery选择器)

接下来,您需要将bean转换为JavaScript。浏览器无法理解
beans.CountryBean@(id#)
。使用类似于创建JSON字符串的JSON框架:

var countries = ${new Gson().toJson(requestScope.countries)};

请注意,您不能再引用字符串;格森会帮你的。但我担心这个表达超出了埃尔的能力范围。在这种情况下,您需要在其他地方进行转换,并将其置于EL上下文中。

您所说的“EL”是什么?向下层选民提出的问题:您是否愿意解释为什么您认为这个问题不好?我可以看出,这不是一个受欢迎的问题。我想说明的是,我确实已经做出了努力来解决这个问题,这个问题应该足够清楚。尽管可以投反对票,但我还是很感激你的指点。谢谢你,但我似乎无法让它发挥作用。我已经搜索了你链接到的页面,并且我尝试了大部分,如果不是所有的建议语法的话。下面的代码根本没有输出<代码>$。每个(国家/地区、函数(索引、值){alert(索引+“此处”);})
您应该真正使用
console.log()
而不是
alert()
,因为它不会停止脚本。使用浏览器的开发人员工具在代码中设置断点,然后确保
国家/地区
包含您期望的内容(并且没有任何其他错误)。再次感谢。我没有任何使用console.log()的经验。我更改了它,但在第一次尝试时仍然没有输出。我希望它出现在我的eclipse控制台中,但如果这是一个有效的假设,我将向se阅读更多内容。尽管我还没有解决我的问题,并且在这个问题上失去了声誉,但我仍然学到了两个新东西,我可以在将来使用它们,这就是这个网站对我来说的全部意义。:)<代码>$。每个(国家、功能(索引、值){})在花括号内没有任何内容,实际上停止了执行,并中断了包含代码的函数。我确实感到困惑……我在Chrome的检查器中发现了一个错误代码:
Uncaught error:Syntax error,无法识别的表达式:[beans]。CountryBean@169fd6,豆子。CountryBean@1579aa5,豆子。CountryBean@69ee4e,豆子。CountryBean@9c5cbd]