转换指标时未定义的值

时间:2017-08-10 19:22:30

标签: javascript

我最近的一个项目是成功将温度从华氏温度转换为摄氏温度。但是,当我点击我的按钮时,我遇到了一个问题,它给了我一个未定义的值。我应该参考我从API请求的温度值吗?我相信当我打电话时,我在天气功能中的转换没有运行。 这是我的代码。

https://codepen.io/baquino1994/pen/qXjXOM?editors=0010

HTML

<span id="temp"></span>
<button id="tempunit">F</button>

JS

function weather(){
    function success(position){
        var latitude = position.coords.latitude;
    var longitude= position.coords.longitude;
        // location.innerHTML = "Latitude:" + latitude+"°"+ "Longitude: " + longitude+'°';
        var theUrl = url +apiKey + "/"+ latitude+","+ longitude +"?callback=?";

    $.getJSON(theUrl, function(data){
        $("#temp").html(data.currently.temperature)
      $("#minutely").html(data.minutely.summary)
      // currentTempInFahrenheit = Math.round(data.html.currently.temperature * 10) /
      $("#tempunit").text(tempUnit);

  $.ajax({
      url:'https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=AIzaSyBpiTf5uzEtJsKXReoOKXYw4RO0ayT2Opc', dataType: 'json',
     success: function(results){
         $("#city").text(results.results[3].address_components[4].long_name)
  $("#country").text(results.results[0].address_components[5].long_name)

     }


 }

  )}
             );
   }    


var location = document.getElementById("location");
var apiKey = "3827754c14ed9dd9c84afdc4fc05a1b3";
var url = "https://api.darksky.net/forecast/";
navigator.geolocation.getCurrentPosition(success);
// location.innerHTML = "Locating...";

   }
$(document).ready(function(){ 
weather();
 });
var tempUnit = "F";
var currentTempInFahrenheit;



$("#tempunit").click(function(){
    var currentTempUnit = $("#tempunit").text();
    var newTempUnit  = currentTempUnit  == "F" ? "C" : "F";
    $('#tempunit').text(newTempUnit);
    if(newTempUnit == "F"){
    var celTemp = Math.round(parseInt($('#temp').text())*5/9 - 32);
        $("#temp").text(celTemp + " " + String.fromCharcode(176));
    }
    else{
        $("#temp").text(currentTempInFahrenheit + " " + String.fromCharCode(176));
    }



})

1 个答案:

答案 0 :(得分:0)

试试这个,我的浏览器阻止了地理定位,当我嘲笑我能够让codepen工作的位置时。

Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
 > (6/4, 6//4)
=> (1.5, 1)
 > (-6/4, -6//4)
=> (-1.5, -2)
 > (6/-4, 6//-4)
=> (-1.5, -2)