recherche

Maison  >  Questions et réponses  >  le corps du texte

判断无序列表里是否包含某个类,并添加和删除类时遇到问题

window.onload = function () {   
 var Ul = document.getElementsByTagName('ul')[1];  
  var oLi =Ul.getElementsByTagName('li');  
  var oLi2 =Ul.getElementsByTagName('li')[2];
   addClass(oLi2,'d');//这个没问题

   for(var i = 0; i <= oLi.length; i++){   
       addClass(oLi[i],'d');
       removeClass(oLi[i],'c');
   } //这一块代码有问题,不知道原因

   function hasClass( elements,cName ){  
       return !!elements.className.match( new RegExp( "(\\s|^)" + cName + "(\\s|$)") );           
   };  
   function addClass( elements,cName ){  
       if( !hasClass( elements,cName ) ){  
           elements.className += " " + cName;  
       };  
   };  
   function removeClass( elements,cName ){  
       if( hasClass( elements,cName ) ){  
           elements.className = elements.className.replace( new RegExp( "(\\s|^)" + cName + "(\\s|$)" )," " );   
       };  
   };  
}


phpcn_u700phpcn_u7002823 Il y a quelques jours867

répondre à tous(2)je répondrai

  • 数据分析师

    数据分析师2017-10-01 00:32:21

    Déterminer si une liste non ordonnée contient une certaine classe et rencontrer des problèmes lors de l'ajout et de la suppression de classes - Questions et réponses PHP en chinois - Déterminer si une liste non ordonnée contient une certaine classe et rencontrer des problèmes lors de l'ajout et de la suppression de classes - Questions et réponses en ligne PHP en chinois

    Regarder et apprenez.

    répondre
    0
  • 巴扎黑

    巴扎黑2017-02-25 09:40:49

    这个很明显啊

    for(var i = 0; i <= oLi.length-1; i++){//注意:length-1   而不是 length
        addClass(oLi[i],'d');
        removeClass(oLi[i],'c');
    }

    循环的判断条件有问题,你一共有oLi.lenght个元素,从0开始,到oLi.length-1就够了。
    这样导致oLi[oLi.length]的值为undefined,后面又读取它的属性,报错


    répondre
    0
  • Annulerrépondre