Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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 是什么让我的变量在从DOM中选择时具有null值_Javascript_Html_Dom_Javascript Objects_Dom Selection - Fatal编程技术网

Javascript 是什么让我的变量在从DOM中选择时具有null值

Javascript 是什么让我的变量在从DOM中选择时具有null值,javascript,html,dom,javascript-objects,dom-selection,Javascript,Html,Dom,Javascript Objects,Dom Selection,我试图操纵我的HTML元素。我正试图使用dom选择器来更改页面上元素的值,但我一直在使用dom选择器 未捕获的TypeError:无法将属性“innerHTML”设置为null 在浏览器控制台中检查问题是什么,我发现动态选择元素时使用的逻辑是导致问题的原因,但当我使用相同的逻辑拾取元素时,它运行良好。。。 我能解释一下为什么我会有这种行为 下面是一个片段 让timerObj={ 分钟:0, 秒:0, timerId:0 } const soundAlarm=()=>{ 设金额=3; 让音频=新

我试图操纵我的HTML元素。我正试图使用dom选择器来更改页面上元素的值,但我一直在使用dom选择器

未捕获的TypeError:无法将属性“innerHTML”设置为null 在浏览器控制台中检查问题是什么,我发现动态选择元素时使用的逻辑是导致问题的原因,但当我使用相同的逻辑拾取元素时,它运行良好。。。 我能解释一下为什么我会有这种行为

下面是一个片段

让timerObj={
分钟:0,
秒:0,
timerId:0
}
const soundAlarm=()=>{
设金额=3;
让音频=新音频('Timer\u Sound\u Effect.mp3');
常量播放声音=()=>{
audio.pause();
audio.currentTime=0;
音频播放();
}
for(设i=0;i{
如果(值<0)值=0;
console.log(“正数”);
如果(键=='秒'){
如果(值<10)值='0'+值;
}
让keySelect=document.getElementById(key);
keySelect.innerHTML=值| | 0
timerObj[键]=值;
console.log(keySelect);
console.log('min',timerObj.minutes);
console.log('secs',timerObj.seconds);
})
(功能检测更改(键){
console.log('detectChanges');
让input=document.getElementById(`${key}-input`);
input.addEventListener('change',()=>{
updateValue(key,input.value);
})
input.addEventListener('keyup',()=>{
updateValue(key,input.value);
})
返回参数.callee;
})(‘分钟’)(‘秒’)
主体、输入、按钮{
字体系列:“蒙特塞拉特”,无衬线;
}
身体{
利润率:72px140px0;
}
#标题{
字号:800;
字体大小:74px;
}
#控制{
显示:内联块;
宽度:46%;
右边框:1px实心rgba(0,0,0,5);
右边填充:42px;
填充底部:42px;
}
.输入组{
利润率:26px0;
}
标签{
显示:内联块;
宽度:24%;
字号:200;
字体大小:30px;
填充:12px;
}
输入{
宽度:60%;
字体大小:30px;
边界:无;
边框底部:1px实心rgba(0,0,0,5);
左侧填充:6px;
字号:200;
大纲:无;
}
输入:禁用{
背景色:白色;
不透明度:.6;
}
钮扣{
颜色:白色;
边界:无;
大纲:无;
填充:12px 62px;
背景色:#222;
}
按钮:禁用{
不透明度:.2;
}
按钮:悬停{
不透明度:.5;
}
氢{
显示:内联块;
垂直对齐:顶部;
字号:200;
字体大小:144px;
边际:12px0;
左侧填充:100px;
}

钟表
钟表
分钟
秒
开始
暂停
停止
零点

设置
按键选择时,是否检查了
按键的值?

错误如下:

document.getElementById(键)

应该很清楚,因为这是您为其指定keySelect的元素

将其更改为
document.getElementBy(${key}-input)

由于格式问题,我不得不删除背景标记,所以请记住重新添加它们

或者更改detectChanges功能

(功能检测更改(键){
console.log('detectChanges');
修改常数=键+“-输入”;
让输入=document.getElementById(已修改);
input.addEventListener('change',()=>{
updateValue(已修改,输入.value);
})
input.addEventListener('keyup',()=>{
updateValue(已修改,输入.value);
})
返回参数.callee;
})(‘分钟’)(‘秒’);

只需在updateValue函数中添加分号即可

constupdateValue=((键,值)=>{
如果(值<0)值=0;
console.log(“正数”);
如果(键=='秒'){
如果(值<10)值='0'+值;
}
让keySelect=document.getElementById(key);
keySelect.innerHTML=值| | 0
timerObj[键]=值;
console.log(keySelect);
console.log('min',timerObj.minutes);
console.log('secs',timerObj.seconds);

});谢谢,我遗漏了分号。。。多谢各位,;