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

DOM 当中 ,splice(i,1); 清除类名,为什么总有一个 on 清除不了??

DOM 当中 ,splice(i,1); 清除类名,为什么总有一个 on 清除不了??

qq_唔叫咩_0 2018-05-04 11:27:46
<div id ="wrap" class="www on on on"></div> <script type="text/javascript">        var oWrap=document.getElementById("wrap");         removeClass( oWrap, 'on' )//传实参        function removeClass( obj, cName ){                var arrClass=obj.className.split("  "); //字符串换成数组                              for ( var i=0;  i<=arrClass.length; i++ )                 {                         if ( arrClass[ i ] == cName )                         {                                  arrClass.splice( i, 1 );//清除相同的类名on                         }                 }        obj.className=arrClass.join('  ');//将剩余的类名通过空格合并  数组转成字符串         };         //<div id="wrap" class="www on"></div>还有一个on没有被清除,为什么???????????? </script>
查看完整描述

1 回答

?
兔子吃点窝边草

TA贡献8条经验 获得超1个赞

因为slice和splice都会改变原数组长度,你在for循环里面加一个 i--,或者for循环里面直接写splice(0,1)或者 slice(0,1)始终删除第一个。

查看完整回答
反对 回复 2018-05-05
  • 1 回答
  • 0 关注
  • 1815 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信