我的目标是使用“setInterval()”函数每 5 秒更改一次选定的单选按钮。 但用户也可以手动选择链接单选按钮的标签(链接单选按钮的标签是在 HTML 中完成的) 如果用户手动选择链接标签; “setInterval()”函数应该选择下一个收音机并继续。
let radios = document.getElementsByClassName("manualRadio");
let repeater;
function startRepeating(current){
repeater = setInterval(function(current){
document.getElementById("radio" + current).checked = true;
current++;
if(current > 4){
current = 1;
}
}, 5000);
}
startRepeating(1);
for (let i = 0; i < radios.length; i++){
radios[i].addEventListener("click", function(){
let currentClicked = this.getAttribute("id").slice(10, 11);
clearInterval(repeater);
startRepeating(currentClicked);
});
}
我厌倦了调试代码,发现函数没有按预期分配给中继器变量(如第一张图片(link-1)所示) 文字
程序在下一行崩溃,如第二张图所示(link-2) 文字
问题出在这一行
setInterval(function(current){
。 current
未定义
let radios = document.getElementsByClassName("manualRadio");
let repeater;
function startRepeating(current) {
repeater = setInterval(function() {
console.log(current)
document.getElementById("radio" + current).checked = true;
current++;
if (current > 4) {
current = 1;
}
}, 5000);
}
startRepeating(1);
for (let i = 0; i < radios.length; i++) {
radios[i].addEventListener("click", function() {
let currentClicked = this.getAttribute("id"); //.slice(10, 11);
clearInterval(repeater);
startRepeating(currentClicked);
});
}
<label for='radio1'>1</label>
<input type='radio' id='radio1'>
<label for='radio2'>2</label>
<input type='radio' id='radio2'>
<label for='radio3'>3</label>
<input type='radio' id='radio3'>
<label for='radio4'>4</label>
<input type='radio' id='radio4'>
<label for='radio5'>5</label>
<input type='radio' id='radio5'>