$(".p1").addclass('p2')
Pure js implementation:
html
<div class="a ">11</div>
<div class="b ">11</div>
<div class="c ">11</div>
css
.b{
background:red;
}
js
function addClass (elements,className){
for (var i=0;i < elements.length;iPP){
var element = elements[i];
if(!element.className.match(new RegExp('(\\s|^)'+className+'(\\s|$)'))){
element.className +=' '+className;
}
}
}
var elements = document.getElementsByTagName("div");
addClass(elements,"b");
< hr >
Update
(setAttr does not overwrite the original attribute. If you need to overwrite and modify the code)
function getAttr(element,attrName){
if(typeof element!='object'||typeof attrName!='string') return;
return attrName =='class'? element.className:element.getAttribute(attrName);
}
function setAttr (element,attrName,attrValue){
if(typeof element !='object'|| typeof attrName!='string' || typeof attrName!='string') return;
var _attrValue = getAttr(element,attrName);
if(!_attrValue){
_attrValue = attrValue;
}else if(!_attrValue.match(new RegExp('(\\s|^)'+attrValue+'(\\s|$)'))){
_attrValue = _attrValue + ' ' + attrValue;
}
attrName == 'class'? element.className=_attrValue:element.setAttribute(attrName,_attrValue);
}
var element = document.getElementsByTagName("div")[0];
setAttr(element,"class","b");
setAttr(element,"id","b");
setAttr(element,"id","b c");
< hr >
Update
encapsulated as a jquery-like call
function MyJquery(selector){ //id
this.element = document.getElementById(selector);
}
MyJquery.prototype.getAttr = function (attrName){
if(typeof attrName!='string') return;
return attrName =='class'? this.element.className:this.element.getAttribute(attrName);
};
MyJquery.prototype.setAttr = function (attrName,attrValue){
if(typeof attrName!='string' || typeof attrName!='string') return;
var _attrValue = this.getAttr(attrName);
if(!_attrValue){
_attrValue = attrValue;
}else if(!_attrValue.match(new RegExp('(\\s|^)'+attrValue+'(\\s|$)'))){
_attrValue = _attrValue + ' ' + attrValue;
}
attrName == 'class'? this.element.className = _attrValue:this.element.setAttribute(attrName, _attrValue);
};
var $ = function (selector) {
return new MyJquery(selector);
}
$("aa").setAttr("class","b");