原生js給div添加類


一 寫個函數然后傳入對象元素跟樣式名字,判定是否為空,如果不為空就賦值樣式名字;

function addclass(elm,newclass){
  var c = elm.className;
  if(c!="")
  elm.className=newclass;
}

二 寫個函數然后傳入對象元素跟需要添加到樣式名字,判定是否為空,如果為空就賦值,否則就加個空格再賦值

function addclass(elm,newclass){
  var c = elm.className;
  elm.className = (c =="") ? newclass : c+' '+newclass;
}

三 傳入對象元素跟樣式名字,然后把elm.className看成用“ ”(空格)分割的字符串,用split去除空格變成數組,然后用push方法添加樣式到數組中,用join添加空格變成字符串再賦值給元素的class,很獨特很棒的方法。

function addclass(elm,newclass){ 
  var classes = elm.className.split(' '); 
  classes.push(newclass); 
  elm.className = classes.join(' '); 
}

然而,我覺得有點不足,假如元素本來就有newclass這類名,那怎么辦?就像這樣:
<div class="div1 div2">
然后我想添加個div2類給這個div,如果用第三種方法,雖然不會出錯,但頁面顯示會變成這樣<div class="div1 div2 div2">,於是我用第四種方法:

四 繼承第三種方法的優勢,在其基礎上做了個循環判定,保證沒有重復的名字存在。

function zhen(obj,claName){
  var cla=obj.className.split(" ");
  for(var i=0;i<cla.length;i++)
  {
    if(cla[i]==claName)
    return;
  }
  cla.push(claName);
  obj.className=cla.join(" ");
}

jquery添加類極易,一般工作用jquery添加,在此不贅述。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM