2017-02-02 7 views
1

私はfreecodecampを介して地元の気象サイトに取り組んでいます。負の数の周りにかっこを表示するためにjQueryを割り当てる方法を誰かが助けてくれるかどうかは疑問でした。すなわち、-5度のとき、私はそれを(-5)と言うことを得ようとしています。jQueryフォーマットの負の数値

function formatTemperature(value){ 
    if(value < 0) 
     return "(" + value + ")"; 
    else 
     return value; 
}; 

とラップ:ここ

は、私は現在、あなたの出力をフォーマットするために、このような関数を作成することができます

$(document).ready(function() { 
 
    if (navigator.geolocation) { 
 
     navigator.geolocation.getCurrentPosition(function(position) { 
 
      var long; 
 
      var lat; 
 
      lat = position.coords.latitude; 
 
      long = position.coords.longitude; 
 

 
      var api = "http://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + long + "&appid=79b001616877b59c717616181ee219ec"; 
 

 
      $.getJSON(api, function(info) { 
 
       var farh; 
 
       var cels; 
 
       var kelvin; 
 
       var tempMin; 
 
       var minTemp; 
 
       var tempMax; 
 
       var maxTemp; 
 
       var tempMinC; 
 
       var minTempC; 
 
       var tempMaxC; 
 
       var maxTempC; 
 
       var strF = ("\u00B0'F'"); 
 
       var tempSwitch = false; 
 
       kelvin = info.main.temp; 
 
       farh = Math.round((kelvin) * (9/5) - 459.67); 
 
       cels = Math.round(kelvin - 273); 
 
       tempMinC = info.main.temp_min; 
 
       minTempC = Math.round(tempMinC - 273); 
 
       tempMaxC = info.main.temp_max; 
 
       maxTempC = Math.round(tempMaxC - 273); 
 
       tempMin = info.main.temp_min; 
 
       minTemp = Math.round((tempMin) * (9/5) - 459.67); 
 
       tempMax = info.main.temp_max; 
 
       maxTemp = Math.round((tempMax) * (9/5) - 459.67); 
 
       var city = info.name; 
 
       var weatherInfo = info.weather[0].description; 
 
       var forecastLow = minTemp; 
 
       var forecastHigh = maxTemp; 
 
       var forecastLowC = minTempC; 
 
       var forecastHighC = maxTempC; 
 
       var currCond = info.weather[0].icon; 
 
       $('#farh').html(farh); 
 
       $('#city').html(city); 
 
       $('#weatherInfo').html(weatherInfo); 
 
       $('#forecastLow').html(forecastLow); 
 
       $('#forecastHigh').html(forecastHigh); 
 
       $('#currCond').html(currCond); 
 
       $('#switch').click(function() { 
 
        if (tempSwitch === false) { 
 
         $('#farh').html(cels); 
 
         $('#forecastLow').html(forecastLowC) 
 
         $('#forecastHigh').html(forecastHighC) 
 
         tempSwitch = true; 
 
        } else { 
 
         $('#farh').html(farh); 
 
         $('#forecastLow').html(forecastLow); 
 
         $('#forecastHigh').html(forecastHigh); 
 
         tempSwitch = false; 
 
        } 
 
       }); 
 
      }); 
 
     }); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<h2 class="weather-header" id="city"></h2> 
 
\t \t \t \t <h1><span class="curr-temp" id="farh"></span><span class="curr-temp">&deg</span></h1> 
 
\t \t \t \t <div class="col-md-5"></div> 
 
\t \t \t \t <div class="col-md-2"> 
 
\t \t \t \t \t <label class="switched"> 
 
\t \t \t \t \t <input type="checkbox" id="switch"> 
 
\t \t \t \t \t <div class="slider"></div> 
 
\t \t \t \t </label> 
 
\t \t \t \t </div> 
 
\t \t \t \t <div class="col-md-5"></div> 
 
\t \t \t \t <h3><span class="hi-lo" id="forecastLow"></span> Low - <span class="hi-lo" id="forecastHigh"></span> High</h3> 
 
\t \t \t \t <p class="forecast" id="weatherInfo"></p>

+0

あなたはそれがスタイルで行わ欠けていますか?またはHTMLに挿入する前に値を操作しても構いませんか? – talemyn

+0

ちょっとした知識:負の値が<0であるかどうかをチェックすることで負の値を調べることができます。 'Math.abs()'を使って負の符号なしの値を得ることができます。 'html()'への呼び出しに置かれた値がページに表示されます。知識のこれらのビットで、あなたが問題を解決する方法を考えてみてください。 –

+0

[mcve]を参照してください – j08691

答えて

2

...で働いていますjQueryのですあなたの値はこの関数を呼び出し、値を渡します。

スニペットの例を更新しました。

$(document).ready(function() { 
 
    if (navigator.geolocation) { 
 
     navigator.geolocation.getCurrentPosition(function(position) { 
 
      var long; 
 
      var lat; 
 
      lat = position.coords.latitude; 
 
      long = position.coords.longitude; 
 

 
      var api = "http://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + long + "&appid=79b001616877b59c717616181ee219ec"; 
 

 
      $.getJSON(api, function(info) { 
 
       var farh; 
 
       var cels; 
 
       var kelvin; 
 
       var tempMin; 
 
       var minTemp; 
 
       var tempMax; 
 
       var maxTemp; 
 
       var tempMinC; 
 
       var minTempC; 
 
       var tempMaxC; 
 
       var maxTempC; 
 
       var strF = ("\u00B0'F'"); 
 
       var tempSwitch = false; 
 
       kelvin = info.main.temp; 
 
       farh = Math.round((kelvin) * (9/5) - 459.67); 
 
       cels = Math.round(kelvin - 273); 
 
       tempMinC = info.main.temp_min; 
 
       minTempC = Math.round(tempMinC - 273); 
 
       tempMaxC = info.main.temp_max; 
 
       maxTempC = Math.round(tempMaxC - 273); 
 
       tempMin = info.main.temp_min; 
 
       minTemp = Math.round((tempMin) * (9/5) - 459.67); 
 
       tempMax = info.main.temp_max; 
 
       maxTemp = Math.round((tempMax) * (9/5) - 459.67); 
 
       var city = info.name; 
 
       var weatherInfo = info.weather[0].description; 
 
       var forecastLow = minTemp; 
 
       var forecastHigh = maxTemp; 
 
       var forecastLowC = minTempC; 
 
       var forecastHighC = maxTempC; 
 
       var currCond = info.weather[0].icon; 
 
       
 
       function formatTemperature(value){ 
 
        if(value < 0) 
 
        return "(" + value + ")"; 
 
        else 
 
        return value; 
 
       } 
 
       
 
       $('#farh').html(farh); 
 
       $('#city').html(city); 
 
       $('#weatherInfo').html(weatherInfo); 
 
       $('#forecastLow').html(forecastLow); 
 
       $('#forecastHigh').html(forecastHigh); 
 
       $('#currCond').html(currCond); 
 
       $('#switch').click(function() { 
 
        if (tempSwitch === false) { 
 
         $('#farh').html(formatTemperature(cels)); 
 
         $('#forecastLow').html(formatTemperature(forecastLowC)); 
 
         $('#forecastHigh').html(formatTemperature(forecastHighC)); 
 
         tempSwitch = true; 
 
        } else { 
 
         $('#farh').html(formatTemperature(farh)); 
 
         $('#forecastLow').html(formatTemperature(forecastLow)); 
 
         $('#forecastHigh').html(formatTemperature(forecastHigh)); 
 
         tempSwitch = false; 
 
        } 
 
       }); 
 
      }); 
 
     }); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<h2 class="weather-header" id="city"></h2> 
 
\t \t \t \t <h1><span class="curr-temp" id="farh"></span><span class="curr-temp">&deg</span></h1> 
 
\t \t \t \t <div class="col-md-5"></div> 
 
\t \t \t \t <div class="col-md-2"> 
 
\t \t \t \t \t <label class="switched"> 
 
\t \t \t \t \t <input type="checkbox" id="switch"> 
 
\t \t \t \t \t <div class="slider"></div> 
 
\t \t \t \t </label> 
 
\t \t \t \t </div> 
 
\t \t \t \t <div class="col-md-5"></div> 
 
\t \t \t \t <h3><span class="hi-lo" id="forecastLow"></span> Low - <span class="hi-lo" id="forecastHigh"></span> High</h3> 
 
\t \t \t \t <p class="forecast" id="weatherInfo"></p>