Javascript 为什么我不能获得输入值

Javascript 为什么我不能获得输入值,javascript,Javascript,单击后,我无法获取在页面上创建矩形的输入值。我认为这是因为事件循环,并试图将其包装在setTimeout()中,但没有成功。那么我应该怎么做,它实际上是如何工作的呢? 代码: (()=>{ 常量inputElements=document.getElementsByTagName(“输入”); 常量输入={ 高度:setTimeout(()=>{return inputElements[0].value},0), 宽度:inputElements[1]。值| | 50 } 常量元素=[]; c

单击后,我无法获取在页面上创建矩形的输入值。我认为这是因为事件循环,并试图将其包装在setTimeout()中,但没有成功。那么我应该怎么做,它实际上是如何工作的呢? 代码:

(()=>{
常量inputElements=document.getElementsByTagName(“输入”);
常量输入={
高度:setTimeout(()=>{return inputElements[0].value},0),
宽度:inputElements[1]。值| | 50
}
常量元素=[];
const bodyClick=document.body.addEventListener('click',()=>{
event.target.tagName!=“输入”?addRectangle():formClick();
})
常量addRectangle=()=>{
让newRectangle=document.createElement('div');
newRectangle.style.background=getRandomColor();
newRectangle.style.width=inputs.width+'px';
console.log(inputs.width)
newRectangle.style.height=inputs.height+'px';
document.body.appendChild(new矩形);
元素。推送(new矩形);
}
const formClick=()=>{
}
常量getRandomColor=()=>{
让字母='0123456789ABCDEF';
让颜色='#';
for(设i=0;i<6;i++){
颜色+=字母[Math.floor(Math.random()*16)];
}
返回颜色;
}
})()
正文{
高度:1000px;
宽度:100%;
}

实验六
(()=>{
常量inputElements=document.getElementsByTagName(“输入”);
常量元素=[];
const bodyClick=document.body.addEventListener('click',()=>{
event.target.tagName!=“输入”?addRectangle():formClick();
})
常量addRectangle=()=>{
常量输入={
高度:inputElements[0]。值| | 50,
宽度:inputElements[1]。值| | 50
}
让newRectangle=document.createElement('div');
newRectangle.style.background=getRandomColor();
newRectangle.style.width=inputs.width+'px';
newRectangle.style.height=inputs.height+'px';
document.body.appendChild(new矩形);
元素。推送(new矩形);
}
const formClick=()=>{
}
常量getRandomColor=()=>{
让字母='0123456789ABCDEF';
让颜色='#';
for(设i=0;i<6;i++){
颜色+=字母[Math.floor(Math.random()*16)];
}
返回颜色;
}
})()
正文{
高度:1000px;
宽度:100%;
}


问题:1。setTimeout不返回任何内容。2.创建矩形时,您将从初始化一次的
输入中获取值。因此,不接受新添加的值。您正在使用
const
作为
输入
变量,因此我希望它的宽度和高度可能总是为空,因为输入字段值在初始加载时为空。@DBS这不是问题。OP在任何地方都不接受值。页面加载时,两个值均为空。所以高度设置为未定义,宽度设置为默认值50。@Rajesh我不确定你的观点是什么,这不是我刚才说的吗?const的使用和缺少更新的变量是同一问题的两个方面。谢谢。还有一种方法可以让这个对象退出回调?@GlebZ。输入对象?如果全局声明,则可以访问它。