为了账号安全,请及时绑定邮箱和手机立即绑定

多条目用js设置className,来动态改变箭头样式时出错

多条目用js设置className,来动态改变箭头样式时出错

犯罪嫌疑人X 2019-03-20 17:13:37
求大神调试https://codepen.io/xyj/pen/KR...在没改变下拉箭头朝向时效果图:一切正常,点条目出现详情。现在我想在出现详情时改变箭头朝向。于是我想用改变className,调用不同样式的方法,代码如下:window.onload = function(){    var details = document.getElementsByClassName("detail");    var items = document.getElementsByClassName("items");    var flex = document.getElementsByClassName("flex");    var triA = document.getElementsByClassName("tri1");    var triB = document.getElementsByClassName("tri2");    j = [1,1,1,1]    for (var i = 0; i < details.length; ++i){        (function(i){            console.log(triA[i]);            details[i].addEventListener("click",function(){                if(j[i] > 0){                    items[i].style.display = "block";                    flex[i].innerText = "收起";                    triA[i].className = "tri3";                    triB[i].className = "tri4";                    j[i] = -j[i];                }                else if (j[i] < 0){                    items[i].style.display = "none";                    flex[i].innerText = "展开";                    triA[i].className = "tri1";                    triB[i].className = "tri2";                    j[i] = -j[i];                }            })        })(i)    }}开始点两个条目没事,后来就出现异常Cannot set property 'className' of undefinedat HTMLDivElement
查看完整描述

2 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

楼上把问题的原理都说清楚了不赘述了

why not尝试一下document.querySelectorAll呢


查看完整回答
反对 回复 2019-04-02
  • 2 回答
  • 0 关注
  • 728 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号