【发布时间】:2018-02-07 23:01:13
【问题描述】:
这是我的 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 和 text 之间切换,并尝试了 charAt,但我无法让它做任何事情,更不用说正确的事情了。任何建议都会非常受欢迎。
编辑:“#changetemp”是您单击以在温度之间切换的按钮(理想情况下)。 “#temperature”是温度显示的位置(确实如此,但不会改变)。
也试过了:
- console.log(final_letter); (在控制台中给出了正确的字母)
- console.log(摄氏度); (报告为“未定义”)和 console.log(fahrenheit);
这两个是前面通过 JSON 定义的 $.getJSON(网址,函数(位置){ var celsius = $("#temperature").html(Math.round(location.main.temp - 273) + "°C");});
我试图通过把它们变成全局变量
var 摄氏度; var 华氏度;
在第一个函数开始之后(围绕其他所有函数),但我猜这不起作用。
更多:
谷歌搜索表明变量不能以数字开头。这就是阻止我的原因吗? 1.我已经设法显示温度,只是不改变它。 2. 你如何解决这个问题?我尝试更改代码,以便“摄氏度”给出“温度:10C”而不是“10C”,但这并没有解决问题。
【问题讨论】:
-
嗨,欢迎来到 SO,请阅读 tour 和 How to Ask。还可以查看minimal reproducible example - 特别是 complete 部分。在这种情况下,一些 HTML 会有所帮助,因为我们不知道
#changetemp指的是什么。如果您可以将代码减少到重现此问题所需的最小,这也会有所帮助。您还可以使用“sn-p”添加代码并显示它(不)工作。 -
希望改进一下。
-
正如@steeno 所说-应该是
.html()-添加var temp = $("#temperature").html(); console.log(temp);看看它到底给了你什么。 -
请添加一些html,具体用于
#temperature所指的节点类型。如果是div``span``td,则使用.text()- 如果是输入(例如<input type='text' id='temperature'/>),则使用.val() -
完成 console.log(temp);并且 F 中的正确温度出现在控制台中。 #temperature 所指的温度是
标签: javascript jquery