Javascript 切换div中包含的html

Javascript 切换div中包含的html,javascript,jquery,Javascript,Jquery,我正在尝试切换一个div,这样当单击它时,它会将温度转换为华氏温度,当再次单击时,它会恢复到最初由api拉入的摄氏度读数 当我只处理数字时,代码有效: var fahrenheit = (data.main.temp * 1.8 + 32).toFixed(2); var celsius = data.main.temp; $("#temp").on("click", function() { $("#temp").html($("#temp").html() == fahrenheit ?

我正在尝试切换一个div,这样当单击它时,它会将温度转换为华氏温度,当再次单击时,它会恢复到最初由api拉入的摄氏度读数

当我只处理数字时,代码有效:

var fahrenheit = (data.main.temp * 1.8 + 32).toFixed(2);
var celsius = data.main.temp; 

$("#temp").on("click", function() {
$("#temp").html($("#temp").html() == fahrenheit ? celsius : fahrenheit)

});
但当我尝试向html添加文本时,它不起作用,它会切换一次到华氏温度转换,但再次单击时不会切换回

var fahrenheit = (data.main.temp * 1.8 + 32).toFixed(2);
var celsius = data.main.temp;

$("#temp").on("click", function() {
$("#temp").html($("#temp").html() == fahrenheit + "&deg F" ? celsius + "&deg C" : fahrenheit + "&deg F")

});
这件事让我有点为难。我四处寻找,但似乎找不到适合我想做的事情的解决方案

谢谢你的帮助


这里是我的

的链接,您的问题在通过JavaScript onclick检查中

当您检查它时,您使用的是JavaScript,因此不应使用度数的HTML实体,您只需使用度数字符:

更改此项:

$("#temp").html($("#temp").html() == fahrenheit + "&deg F" ? celsius + "&deg C" : fahrenheit + "&deg F")
为此:

$("#temp").html($("#temp").html() == fahrenheit + "° F" ? celsius + "° C" : fahrenheit + "° F" )

您必须检查当前是否以摄氏度显示,然后根据该值做出决定

$("#temp").on("click", function() {
  var isCelsius = $(this).html().indexOf('C') > -1;
  $('#temp').html(isCelsius ? celsius + '&deg C' : fahrenheit + '&deg F');
});
当您使用html()获取值时,您将获得解析的html,因此您没有
°
html实体,而是解析的值

要修复代码,可以比较degree实体的hexcode值

$("#temp").on("click", function() {
  $("#temp").html($("#temp").text() == fahrenheit + "\xB0 F" ? celsius + "\xB0 C" : fahrenheit + "\xB0 F")
});

您可以只比较数字(没有最后3’°F或°C’字符)

var fahrenheit=(data.main.temp*1.8+32).toFixed(2);
变量摄氏度=data.main.temp;
$(“#temp”)。在(“单击”,函数(){
var numberOnly=$(“#temp”).html().length-3;
$(“#temp”).html($(“#temp”).html()。子字符串(0,数字)==华氏度?摄氏度+“° C”:华氏度+”° F”);

});那么
#temp
是一个??请包括标记。抱歉,对于使用此网站来说是新手,#temp是元素的id。我将编辑我的原始帖子,添加到代码笔的链接。谢谢你的提醒。我猜这可能与
°
有关。当放入html时,它会变成
°
,这将如何比较?谢谢。我的问题简单,显然表明我缺乏经验。这很好用。不用担心,用你的天气应用程序编码也很开心:)