Javascript 从document.getElementById字符串返回的HTML元素类型不是数字
我使用document.getElementById.innerHTML获取HTML元素的值,然后将该值传递给返回值类型的函数。然后,我使用if/else if块将值的类型打印到控制台。我的问题是,typeof方法总是返回字符串类型。如果我不使用document.getElementById并直接声明变量,typeof将返回正确的类型。谢谢你的帮助 JS小提琴在这里:Javascript 从document.getElementById字符串返回的HTML元素类型不是数字,javascript,Javascript,我使用document.getElementById.innerHTML获取HTML元素的值,然后将该值传递给返回值类型的函数。然后,我使用if/else if块将值的类型打印到控制台。我的问题是,typeof方法总是返回字符串类型。如果我不使用document.getElementById并直接声明变量,typeof将返回正确的类型。谢谢你的帮助 JS小提琴在这里: innerHTML将只返回一个字符串。您需要将其解析为整数 这里发生的是,您正在检查以字符串形式存在的数字类型。请尝试以下方法:
innerHTML将只返回一个字符串。您需要将其解析为整数
这里发生的是,您正在检查以字符串形式存在的数字类型。请尝试以下方法:
// return var type
function check_type(value) {
//you could also use parseInt or parseFloat here, but that would return a number for a string like "2014 asdf".
//By multiplying by 1, the value will be changed into a number if it is one
var valueNumber = value*1;
return typeof valueNumber;
}
您可以尝试将该值解析为整数,然后将其与原始值进行比较:
if(parseInt(LowTemperature) == LowTemperature) alert("LowTemperature is an integer");
或
innerHTML
将始终返回字符串。您可以尝试使用isNaN
检测它是否是数字。如果isNaN(低温)
返回false
,则LowTemperature
是一个数字字符串。看:谢谢你,亚当!工作正常。
if(parseInt(LowTemperature) == LowTemperature) alert("LowTemperature is an integer");
var LowTemperature = document.getElementById('LowTemperature').value;
var LowTemperature = parseInt(document.getElementById('LowTemperature').innerHTML);