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]) } } };



2个回答

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

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

lc18602289751
lc18602289751 可那是i的循环,最后对象的下标是this.index啊
6 个月之前 回复
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]) 
                }
            } 
        } 
shamingzimeiyou
嗄哩露吖 回复lc18602289751: 你this.index哪来的
6 个月之前 回复
lc18602289751
lc18602289751 请回答我的问题
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐