0

所以,我正在构建一个天气网站,并使用 Wunderground 的 API。在 AJAX XML 转储中,“icon”的值似乎是要走的路。此响应将动态更改页面上的 CSS。我有多个我想要的页面状态,但我似乎无法让它们工作。它似乎在第一个“if”语句之后停止。我需要它来检查是否 wu_icon == 某些条件,如果不是,请移至下一个条件并查看 wu_icon == 下一组条件。

这是网站

任何帮助将非常感激。

function get_weather(position) {
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;
    wu_query = latitude + ',' + longitude;

    //Weather underground request URL format.
    wu_url = wu_base_url + '/' + wu_api_key + '/' + wu_features + '/q/' + wu_query + '.json';
    console.log('URL Query: ' + wu_url);

    $.ajax({
        url: wu_url,
        dataType: "jsonp",
        success: function(parsed_json) {
            console.log(parsed_json);

            var location = parsed_json['location']['city'];
            var wuurl = parsed_json['location']['wuiurl'];

            //simple forecast day 1.
            var wu = parsed_json['current_observation'];
            var wu_temp_f = wu['temp_f'];
            var wu_high_temp = wu['high'];
            var wu_low_temp = wu['low'];
            var wu_icon = wu['icon'];

            $('#location').html(location);
            $('#temp').html(wu_temp_f + '&degF');


            if (wu_icon == 'partlycloudy' || 'partlysunny' || 'unkown'){
                document.getElementById('rainclouds').style.display = 'none';
                document.getElementById('topclouds').style.display = 'block';
                document.getElementById('bottomclouds').style.display = 'block';
                document.getElementById('canvas').style.display = 'none';
                document.getElementById('snow').style.display = 'none';
                window.alert("1");
                }

            else if (wu_icon == 'rain' || 'chancerain' || 'chancetstorms' || 'tstorms'){
                document.getElementById('rainclouds').style.display = 'block';
                document.getElementById('topclouds').style.display = 'none';
                document.getElementById('bottomclouds').style.display = 'none';
                document.getElementById('canvas').style.display = 'block';
                document.getElementById('snow').style.display = 'none';
                window.alert("2");
                }

            else if (wu_icon == 'flurries' || 'snow' || 'chanceflurries' || 'chancesnow'){
                document.getElementById('rainclouds').style.display = 'block';
                document.getElementById('topclouds').style.display = 'none';
                document.getElementById('bottomclouds').style.display = 'none';
                document.getElementById('canvas').style.display = 'none';
                document.getElementById('snow').style.display = 'block';
                window.alert("3");
                }

            else if (wu_icon == 'clear' || 'mostlysunny' || 'sunny'){
                document.getElementById('rainclouds').style.display = 'none';
                document.getElementById('topclouds').style.display = 'block';
                document.getElementById('bottomclouds').style.display = 'none';
                document.getElementById('canvas').style.display = 'none';
                document.getElementById('snow').style.display = 'none';
                window.alert("4")
                }

            else if (wu_icon == 'chancesleet' || 'sleet'){
                document.getElementById('rainclouds').style.display = 'block';
                document.getElementById('topclouds').style.display = 'none';
                document.getElementById('bottomclouds').style.display = 'none';
                document.getElementById('canvas').style.display = 'block';
                document.getElementById('snow').style.display = 'block';
                window.alert("5");
                }

            else if (wu_icon == 'cloudy' || 'mostlycloudy' || 'fog' || 'hazy'){
                document.getElementById('rainclouds').style.display = 'block';
                document.getElementById('topclouds').style.display = 'none';
                document.getElementById('bottomclouds').style.display = 'none';
                document.getElementById('canvas').style.display = 'none';
                document.getElementById('snow').style.display = 'none';
                window.alert("6");
                }


        }
4

1 回答 1

1

你的 if 语句应该看起来像

if (wu_icon == 'partlycloudy' || wu_icon == 'partlysunny' || wu_icon == 'unkown')

较短的版本将是

if (["partlycloudy","partlysunny","unkown"].indexOf(wu_icon) != -1)
于 2013-04-19T17:36:02.873 回答