zoukankan      html  css  js  c++  java
  • js-DOM-css的className相关

     1、在非标准的浏览器,IE8及以下的浏览器不支持className的操作,包括getElementByClassName,addClassName,removeClassName;

     2、getElementByClassName处理兼容的方法:

      

    var aLi=getElementByClassName(document,'box');//如果多一个限制元素范围的形式为:getElementByClassName(document,'box','li');
    
    function getElementByClassName(parent,className){//parent指在该范围下来选取节点,className指要获取的className名字
          var aEls=parent.getElementByTagName('*');//获取页面所有元素,也可以通过传参的方式将“*”替换为想要的元素范围。比如想要获取className为box的所有li元素,就需要将“*”改为li,将传参部分多增加一个tagName,传给tagName的参数为li。
    //getElementByClassName(parent,className,tagName); 
    //var aEls=parent.getElementByTagName(tagName);
    
          var arr=[];
          for(var i=0;i<aEls.length;i++){
             var aClassName=aEls[i].className.split(' ');
             for(var j=0;j<aClassName.length;j++){
    
                   if(aClassName[j]==className){
                       arr.push(aEls[i]);
                       break;
                   }
            }
          }
      return arr; }

    3、添加className的方法:addClass()

     function addClass(obj,className){
         if(obj.className==''){
          //如果原来没有className
             obj.className=className;
         }else{
          // 如果有className
         //如果要添加的className在原来的className中不存在
               var arrClassName=obj.className.split(' ');
               var index=arrIndexOf(arrClassName,className);
                if(index==-1){
                   obj.className+=' '+className;
                }
         }
         //如果要添加的className在原来的className中存在,则不用再添加了
    
    }
     function arrIndexOf(arrClassName ,className){
            for(var i=0;i<arrClassName.length;i++){
                if(a[i]==className){
                   return i;
                }
            }
           return -1;
    }                    

    4、删除className的方法:removeClass

    function removeClass(obj,className){
         //如果原来有class
          if( obj.className!=''){
            var arrClassName=obj.className.split(' ');
            var index=arrIndexOf(arrClassName.className);
             //如果有要移除的class
            if(index!=-1){
               arrClassName.splice(index,1);
               obj.className=arrClassName.join(' ');
             }
            //如果没有要移除的class则不用进行操作
          }
    }        
     function arrIndexOf(arrClassName ,className){
            for(var i=0;i<arrClassName.length;i++){
                if(a[i]==className){
                   return i;
                }
            }
           return -1;
    }   
  • 相关阅读:
    创建一个windows服务的小程序及注意事项
    Asp中上传文件
    C#创建Excel表格(样式设置)
    在Windows服务中使用EventLog组件纪录日志
    MVC中使用 事物
    WCF(学习笔记)【参见WCF教程】
    用vs命令提示符来使用 Installutil.exe来安装和卸载Windows服务
    web service使用注意事项
    iphone开发 有关 Navigation Bar 和 UITableView 的用法(Navigation Bar 的edit 按钮 自定义实现编辑状态)
    在Mvc中 使用 Ajax 提交和接收 数据
  • 原文地址:https://www.cnblogs.com/yuxingyoucan/p/6388715.html
Copyright © 2011-2022 走看看