我正在開發天氣api,並且在攝氏溫度和華氏溫度之間切換時遇到麻煩。切換溫度時Javascript Onclick函數不起作用
我用一個單獨的函數來獲取位置以及來自API的調用。
我還在第二個函數中添加了onclick函數。我可以讓它切換到一個溫度,但不會回來。
function getTemp(data) {
// API variables
var temp1 = data.main.temp;
var weatherUrl = data.weather[0].icon;
var tempInC = Math.round(temp1); // Temp in Celsius
var tempInF = Math.round(temp1 * 9/5 +32)
// Inner HTML variables
var weatherF = "The weather is " + tempInF + " ℉ <br>" +
"<img src='" + weatherUrl + "'/>";
var weatherC = "The weather is " + tempInC + " ℃ <br>" +
"<img src='" + weatherUrl + "'/>";
// Button DOM variables
var buttonText = document.getElementsByTagName("button")[0].innerText;
var buttonId = document.getElementById('btn');
x.innerHTML = weatherF;
buttonId.onclick = function toggleTemp() {
if(buttonText == "Convert to Celsius") {
x.innerHTML = weatherC;
buttonId.innerText = "Convert to Fahrenheit";
} else {
x.innerHTML = weatherF;
buttonId.innerText = "Convert to Celsius";
}
}
}
我以前的innerText因爲我認爲這是來回切換溫度之間的最簡單的方法。我可以得到天氣轉換爲攝氏,但其他語句不起作用。 Fyi,我無法使用標籤名稱來更改按鈕文本,這就是爲什麼我要求在按鈕點擊功能中使用ID。我仍然很熟悉JavaScript。任何幫助,將不勝感激。
您需要設置'buttonText'的'onclick'功能裏面,所以它會獲得當前文本。 – Barmar
或者只是使用'if(buttonId.innerText ==「轉換成Celcius」)' – Barmar
其實,它很混亂。你可以從'document.getElementsByTagName(「button」)[0]'設置'buttonText',但'buttonId = document.getElementById('btn');'。你爲什麼要測試一個文本,但改變另一個的文本? – Barmar