我正在创建一个JavaScript数组,方法如下:
var selectedColors= { 'Orange' : $("#Orange").val(),
'Light Blue' : $("#LightBlue").val(),
'Dark Red' : $("#DarkRed").val(),
'Dark Blue' : $("#DarkBlue").val()};
然后遍历每个项目以查看未选择哪种颜色,然后将它们存储在另一个数组中:
var colorsNotSelected = [];
$.each(selectedColors, function (key, value) {
if (value.length == 0)
colorsNotSelected.push({key:key});
});
这里我想显示未选择的颜色,但是按照以下方式显示按键:0,1,2,3代替橙色,浅蓝色,深红色,深蓝色。
我在这里做错了什么?
if (colorsNotSelected.length > 0)
$.each(colorsNotSelected, function (key) { alert(key) });
return false;
非常感谢任何帮助。
答案 0 :(得分:1)
对象和数组将在jQuery中迭代相同的内容。看来你需要使用大括号来保持返回false语句下的检查:
if (colorsNotSelected.length > 0) {
$.each(colorsNotSelected, function (key) { alert(key) });
return false;
}
这是不必要的:
colorsNotSelected.push({key:key});
这样做:
colorsNotSelected.push(key);
这也是假设您的示例代码之上的某处:
var colorsNotSelected = [];
答案 1 :(得分:0)
您可能希望尝试使用for / in循环:
for(var i in colorsNotSelected){
alert(i);
}