猿问

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

<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>



qq_唔叫咩_0
浏览 1936回答 1
1回答

兔子吃点窝边草

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

相关分类

JavaScript
我要回答