oBtn.length - 1不是一个确定的值吗,为什么能遍历五个input?





改变属性

body { text-align: center; } #continer { width: 500px; margin: 0 auto; text-align: center; } #down { width: 100px; height: 100px; margin: 10 auto; display: block; background: black; } var changeStyle = function (elem, attr, value) { elem.style[attr] = value }; window.onload = function () { var oBtn = document.getElementsByTagName("input"); var oDiv = document.getElementById("down"); var oAtt = ["width","height","background","display","display"]; var oVal = ["200px","200px","red","none","block"]; for (var i = 0; i < oBtn.length; i++) { oBtn[i].index = i; oBtn[i].onclick = function () { this.index == oBtn.length - 1 && (oDiv.style.cssText = ""); changeStyle(oDiv, oAtt[this.index], oVal[this.index]) } } };



for (var i = 0; i < oBtn.length; i++)
这里有循环,所以可以遍历

问题解决的话,请及时采纳,点一下回答下面的采纳即可。

for (var i = 0; i < oBtn.length; i++) { 
            oBtn[i].index = i; 
            oBtn[i].onclick = function () { 
                this.index == oBtn.length - 1 && (oDiv.style.cssText = ""); 
                changeStyle(oDiv, oAtt[this.index], oVal[this.index]) 
            } 
        } 

你在这段代码里面并没有写你的判断条件,需要加上if-else 否则的话,后面的代码不管条件满不满足都会执行
应该改为

for (var i = 0; i < oBtn.length; i++) { 
            oBtn[i].index = i; 
            oBtn[i].onclick = function () { 
                if((this.index == oBtn.length - 1) && (oDiv.style.cssText = "")){
                    changeStyle(oDiv, oAtt[this.index], oVal[this.index]) 
                }
            } 
        }