增加类,删除类,查找类

//查找类

function getElementsByClassName(parent,tagName,className){   
  var aEle=parent.getElementsByTagName(tagName);
  var arr=[];
  for(var i=0; i<aEle.length; i++)
  {
    var aClassName=aEle[i].className.split(' ');  //....................(以空格为准)在拆分一次
    for(var j=0; j<aClassName.length; j++)
    {
      if(aClassName[j]==className)
      {
        arr.push(aEle[i]);
        break; //.............................如果找到一个就跳出循环
      }
    }
  }
  return arr;
}

//判断有没有重复的  用来配合增加类和删除类来用的

function arrIndexOf(arr,v)
{
  for(var i=0; i<arr.length; i++)
  {
    if(arr[i]==v)
    {
      return i;
    }
  }
  return -1;
}

// 添加class函数
function addClass(obj,className)
{
   if(obj.className=='')   //.........................判断对象原来有没有类 没有就直接添加类
   {
      obj.className=className;
   }
   else{
    var arr2=obj.className.split(' ');
    var cun=arrIndexOf(arr2,className);
    if(cun == -1){   //..............................判断对象原来没有这个类 然后在添加
      obj.className +=' '+className;
    }
  }
}

//删除类函数

function removeClass(obj,className)
{
  if(obj.className != '')
  {
    var arr2=obj.className.split(' ');
    var cun=arrIndexOf(arr2,className);
    if(cun != -1){
      arr2.splice(cun,1);   //...................................................splice(index,howmany,item1)
      obj.className=arr2.join(' ');
    }
  }

}

知识点:

splice(index,howmany,item1)

  index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

  howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。

  item1:可选。向数组添加的新项目。

原文地址:https://www.cnblogs.com/zhengyan/p/4990861.html