在Javascript文件中使用带有JSON数据的case开关

在Javascript文件中使用带有JSON数据的case开关,javascript,html,json,Javascript,Html,Json,我对我正在做的一个项目有意见。我使用JSON从OpenWeather的API调用数据,并使用Javascript将该数据与以Skycon形式输出的当前天气状况结合使用。我正在使用一个case开关从OpenWeather接收呼叫并将其分配给相应的Skycon 我的问题是Skycon没有显示 我的代码: 函数startSkycons(){ var weatherData=”http://api.openweathermap.org/data/2.5/weather?q=Endicott,us&ap

我对我正在做的一个项目有意见。我使用JSON从OpenWeather的API调用数据,并使用Javascript将该数据与以Skycon形式输出的当前天气状况结合使用。我正在使用一个case开关从OpenWeather接收呼叫并将其分配给相应的Skycon

我的问题是Skycon没有显示

我的代码:

函数startSkycons(){
var weatherData=”http://api.openweathermap.org/data/2.5/weather?q=Endicott,us&appid=5068BDB59997B9B9F98D00AEDF1C12F”;
$.getJSON(天气数据,函数(数据){
var weatherIcon=(data.weather.icon);
var icons=新的天空图标({“颜色”:“白色”});
图标。设置(“天气图标”,天空图标。晴天);
图标。设置(“天气图标”,天空图标。清除夜晚);
图标。设置(“天气图标”,天空图标。部分为阴天);
图标。设置(“天气图标”,天空图标。部分多云的夜晚);
图标。设置(“天气图标”,天空图标。多云);
图标。设置(“天气图标”,天空图标。雨);
图标。设置(“天气图标”,天空图标。雨夹雪);
图标。设置(“天气图标”,天空图标。雪);
图标。设置(“天气图标”,天空图标。风);
图标。设置(“天气图标”,天空图标。雾);
开关(天气图标){
案例“01d”:
添加(document.getElementById(“天气图标”),skycons.CLEAR_DAY);
打破
案例“01n”:
添加(document.getElementById(“天气图标”),skycons.CLEAR_NIGHT);
打破
案例“02d”:
添加(document.getElementById(“weatherIcon”),skycons;
打破
案例“02n”:
添加(document.getElementById(“weatherIcon”),skycons.party_CLOUDY_NIGHT);
打破
案例:“03d”:
添加(document.getElementById(“weatherIcon”)、skycons.CLOUDY;
打破
案例:“09d”:
添加(document.getElementById(“weatherIcon”)、skycons.RAIN;
打破
案例:“13d”:
添加(document.getElementById(“weatherIcon”)、skycons.SNOW;
打破
案例:“50d”:
添加(document.getElementById(“weatherIcon”)、skycons.FOG;
打破
违约:
}
天敌。play();
}
startSkycons();
正文{
背景色:#000;
}
#时间{
最高:3%;
左:3%;
位置:固定;
}
#时间模块{
字体系列:“Oswald”,无衬线;
颜色:#FFF;
字体大小:64px;
}
#日期{
字体系列:“Oswald”,无衬线;
颜色:#FFF;
字号:18px;
最高:15%;
左:4%;
位置:固定;
}
#天气{
最高:5%;
左:70%;
位置:固定;
宽度:30%;
高度:250px;
}
#气象图标{
左:0%;
位置:绝对位置;
}
.weatherTemp{
字体系列:“Oswald”,无衬线;
颜色:#FFF;
字体大小:64px;
}
#天气温度{
显示:表格;
保证金:0自动;
}
韦瑟敦先生{
字体系列:“Oswald”,无衬线;
颜色:#FFF;
字体大小:30px;
}
#威瑟敦{
显示:表格;
保证金:0自动;
顶部:-10px;
}

标题
在此处检查您的代码

case: "03d":
      skycons.add(document.getElementById("weatherIcon"), Skycons.CLOUDY);
      break;
    case: "09d":
      skycons.add(document.getElementById("weatherIcon"), Skycons.RAIN);
      break;
    case: "13d":
      skycons.add(document.getElementById("weatherIcon"), Skycons.SNOW);
      break;
    case: "50d":
      skycons.add(document.getElementById("weatherIcon"), Skycons.FOG);
      break;
您在“case”语法之后添加了额外的冒号,您应该这样写

    case "03d":
      skycons.add(document.getElementById("weatherIcon"), Skycons.CLOUDY);
      break;
    case "09d":
      skycons.add(document.getElementById("weatherIcon"), Skycons.RAIN);
      break;
    case "13d":
      skycons.add(document.getElementById("weatherIcon"), Skycons.SNOW);
      break;
    case "50d":
      skycons.add(document.getElementById("weatherIcon"), Skycons.FOG);
      break;
试试看,可以问更多的问题。

感谢和Jaromanda X的帮助,我已经解决了这个问题


对于任何可能遇到类似问题的人来说,我的问题是:正如前面提到的两个人所指出的,切换的语法,以及我没有定义
skycons
。我在JS文件中将
图标切换到
skycons
,现在可以正常工作。

“消息”:“SyntaxError:expected expression,get':”,
-这是开发人员工具控制台(以及代码段的输出)中的消息-在浏览器中调试代码时,请习惯于检查此开发人员工具控制台是否存在易于修复的错误,例如:
大小写:“03d”、“03n”、“04d”、“04n”:
无效语法-请阅读一些示例。第一个示例显示了如何处理您的需求(即芒果和木瓜),因此,与其使用
案例:“50d”,“50n”:
它是
案例“50d”:案例“50n”:
我编辑了开关案例以排除不正确的语法,但问题仍然存在请至少尝试使用浏览器开发人员工具控制台调试基本的打字错误/语法错误/缺少变量等-浏览器正在告诉您错误所在不幸的是,问题仍然存在,图标仍然不显示。@Jay-因为
skycons
Skycons
未定义,缺少右括号…所有这些都在开发者工具控制台中详细说明,您似乎忽略了这些内容-您的浏览器正在告诉您您做错了什么!