gpt4 book ai didi

javascript - 未捕获的类型错误 : . indexOf 不是函数

转载 作者:行者123 更新时间:2023-12-02 23:33:03 27 4
gpt4 key购买 nike

我是 JavaScript 新手,收到如下错误

Uncaught TypeError: time.indexOf is not a function

哎呀,我真的以为indexOf()真的是一个函数。这是我的代码片段:

    var timeofday = new Date().getHours() + (new Date().getMinutes()) / 60;
document.getElementById("oset").innerHTML = timeD2C(timeofday);
</script>


<script>
function timeD2C(time) { // Converts 11.5 (decimal) to 11:30 (colon)
var pos = time.indexOf('.');
var hrs = time.substr(1, pos - 1);
var min = (time.substr(pos, 2)) * 60;

if (hrs > 11) {
hrs = (hrs - 12) + ":" + min + " PM";
} else {
hrs += ":" + min + " AM";
}
return hrs;
}
</script>

最佳答案

基本上 indexOf() 是一个属于字符串(也是数组对象)的方法,但是在调用函数时您要传递一个数字,请尝试将其转换为字符串并传递它。

document.getElementById("oset").innerHTML = timeD2C(timeofday + "");

 var timeofday = new Date().getHours() + (new Date().getMinutes()) / 60;




function timeD2C(time) { // Converts 11.5 (decimal) to 11:30 (colon)
var pos = time.indexOf('.');
var hrs = time.substr(1, pos - 1);
var min = (time.substr(pos, 2)) * 60;

if (hrs > 11) {
hrs = (hrs - 12) + ":" + min + " PM";
} else {
hrs += ":" + min + " AM";
}
return hrs;
}
alert(timeD2C(timeofday+""));

<小时/>

最好在函数定义中进行字符串转换,

function timeD2C(time) { 
time = time + "";
var pos = time.indexOf('.');

这样,当开发人员忘记将字符串传递给该函数时,代码流就不会中断。

关于javascript - 未捕获的类型错误 : . indexOf 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36483151/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com