【发布时间】:2016-04-01 15:46:42
【问题描述】:
场景
我有一些文本输入,我希望它们在被点击时具有 500 像素的宽度。
我的代码
var inputs = document.querySelectorAll("input[type=text]")
for(i=0; i<inputs.length; i++){
inputs[i].onclick = function(){
inputs[i].style.width = "500px";
}
}
<input type="text" id="sometext">
什么不工作
在 chrome 控制台上,当我单击输入时,我在以下行中收到“无法读取未定义的属性‘样式’”:inputs[i].style.width = "500px";。
我的问题
如何修复我的代码?
【问题讨论】:
-
查看链接的问题,了解如何处理这个经常遇到的问题。
-
那是因为当用户点击输入时,
ivar 没有被定义。 -
@Pointy:从技术上讲,它是重复的,但在这个问题上,实际上需要一个新的范围来解决它。这里不是这样。
-
@Stubborn:只需将这个:
inputs[i].style.width = "500px";改成这个this.style.width = "500px"; -
@squint 谢谢,这行得通!