免费代码营天气应用程序,切换将无效

时间:2018-02-07 10:08:44

标签: javascript jquery

这是我的Javascript代码。

$("#changetemp").click(function () {
    var temp = $("#temperature").html;
    var final_letter = temp[temp.length-1];
$("#temperature").html(function () 
        {if (final_letter == "F") {return celsius;} 
         else {return fahrenheit;}});});

});}});});

它应该在摄氏和华氏之间切换温度,但不会产生很大的脂肪。我用谷歌搜索并改变了一些东西(例如在val,html和文本之间消失,尝试了charAt但是我无法做任何事情,更不用说正确的事了。任何建议都会非常受欢迎。

编辑:“#changetemp”是您单击以在温度之间切换的按钮(理想情况下)。 “#temperature”是温度显示的位置(确实如此,但不会改变)。

也尝试过:

  • 的console.log(final_letter); (在控制台中给出了正确的字母)
    • 的console.log(摄氏度); (报告为'undefined')和console.log(fahrenheit);

这两个是先前通过JSON定义的     $ .getJSON(url,function(location){var celsius =     $(“#temperature”)。html(Math.round(location.main.temp - 273)+“°C”);});

我尝试通过添加

使它们成为全局变量

var celsius; var fahrenheit;

在第一个函数开始之后(包围其他所有内容)但我猜这不起作用。

更多:

谷歌搜索表明变量不能以数字开头。这是阻止我在这里的原因吗?  我设法显示了温度,但没有改变它。  你怎么绕过那个?我尝试更改代码,以便'摄氏'给'温度:10C'而不是'10C',但这并没有解决它。

1 个答案:

答案 0 :(得分:0)

我假设错误在var temp = $("#temperature").html;行 如果将其更改为var temp = $("#temperature").html();,会有帮助吗? html是一个jQuery函数,所以你需要用parantheses来调用它。否则temp不会包含#temp元素的内容,而是包含对html方法的引用。因此,您没有收到内容的最后一个字母。