Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么setInterval只执行一次?_Javascript_Html - Fatal编程技术网

Javascript 为什么setInterval只执行一次?

Javascript 为什么setInterval只执行一次?,javascript,html,Javascript,Html,setInterval只执行一次。我也尝试过使用setTimeout并将其放在函数中以引起循环,但结果相同。我用的是括号,如果有区别的话,这是实时预览 const buttons=document.getElementsByTagName('button'); 设置间隔(charChange,1000); 函数charChange(){ 让线; 设chars=['#'、'!'、'@'、'$'、'%'、'&'、'+'、'?']; 对于(i=0;i

setInterval
只执行一次。我也尝试过使用
setTimeout
并将其放在函数中以引起循环,但结果相同。我用的是括号,如果有区别的话,这是实时预览

const buttons=document.getElementsByTagName('button');
设置间隔(charChange,1000);
函数charChange(){
让线;
设chars=['#'、'!'、'@'、'$'、'%'、'&'、'+'、'?'];
对于(i=0;i

帮助
如果函数运行正常,问题出在函数代码本身,而不是
setInterval

这样做:

string = string.replace(/_/, char);
您总是试图替换
字符。从第二次调用函数开始,该字符将不再出现,因为它已被第一次调用替换

如果希望最后一个字符保持更改,则有多个选项:

string = string.substrstring.replace(/.$/, char);
// or
string = string.substrstring.slice(0, -1) + char;
// or even just
buttons[i].textContent = 'help' + char;
regexp
$
匹配字符串中最后一个位置的任何字符(
$
匹配字符串的结尾),但它可能是最慢的选项


工作代码段:

const buttons=document.getElementsByTagName('button');
设置间隔(charChange,1000);
函数charChange(){
让线;
设chars=['#'、'!'、'@'、'$'、'%'、'&'、'+'、'?'];
对于(i=0;i

帮助
否,它每秒执行一次。你的函数一直在做同样的事情。这个按钮
.textContent
有什么意义?你的目标是什么?@Craftingexpert1这正是问题所在。你自己试试吧,我添加了一个工作代码段。很抱歉,我没有看到。