• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

jQuery动态添加样式

JavaScript 水墨上仙 2979次浏览

jQuery动态添加样式
转自:http://blog.csdn.net/bj_benjamin/article/details/9125097

添加CSS的方式有行内式、嵌入式、外链式、导入式
a)动态引入样式表文件:
function loadLink(url){
	var link = document.createElement("link");
	link.type = "text/css";
	link.rel  = "stylesheet";
	link.href  = url;
	var head = document.getElmentsByTagName("head")[0];
	head.appendChild(link);
}
b)嵌入式:
function insertStyles(){
	var doc,cssCode=[],cssText;
	var len = arguments.length;
	var head,style,firstStyle;
	if(len == 1){
		doc = document;
		cssCode.push(arguments[0])
	}else if(len == 2){
		doc = arguments[0];
		cssCode.push(arguments[1]);
	}else{
		alert("函数最多接收两个参数!");
	}
	head = doc.getElementsByTagName("head")[0];
	styles= head.getElementsByTagName("style");
	if(styles.length == 0){
		if(doc.createStyleSheet){//ie
			doc.createStyleSheet();
		}else{//FF
			var tempStyle = doc.createElement("style");
			tempStyle.setAttibute("type","text/css");
			head.appendChild(tempStyle);
		}
	}
	firstStyle = styles[0];
	cssText=cssCode.join("\n");
	if(!+"\v1"){//opacity兼容
		var str = cssText.match(/opacity:(\d?\.\d+);/); 
		if(str!=null){
			cssText = cssText.replace(str[0],"filter:alpha(opacity="+pareFloat(str[1])*100+")");
		}
	}
	if(firstStyle.styleSheet){
		firstStyle.styleSheee.cssText += cssText;
	}else if(doc.getBoxObjectFor){
		firstStyle.innerHTML += cssText;
	}else{
		firstStyle.appendChild(doc.createTextNode(cssText));
	}
}
c)行内式:
var addStyle=function (ele,str){
	var s = ele.getAttribute("style"),styles;
	if(str && typeof str === "string"){
		if(!s){
			ele.style.cssText = str;
		}else{
			if(s == '[object]'){//IE6/7 e.getAttribute("style")返回[object]
				s=ele.style.cssText;
			}
			styles= trim(s).split(";");
			for (var i=0,len=styles.length; i<len; i++){
				var style_i=trim(styles[i]);
				var attr=style_i.split(":")[0];
				if(str.indexOf(attr)>-1){
					styles[i]="";
				}else{
					styles[i]=style_i;
				}
			}
			ele.style.cssText= styles.join("")+";"+str;
		}
	}
}
d)导入式:
import "index.css";

操作CSS 类相关的方法:
var hasClass=function(ele,value){
	var rclass = /[\n\t\r]/g,
		value=" "+value+" ";
	return (ele.nodeType==1)&&(" "+ele.className+" ").replace(rclass," ").indexOf(value)>-1;
}
var trim=function (val){
	return val.replace(/(^\s+)|(\s+$)/g,"");
}
var addClass=function(ele,value){
	var rspace = /\s+/,classNames,getClass;
	if(value&&typeof value === "string"){
		classNames = value.split(rspace);
		if(ele.nodeType === 1){
			if(!ele.className && classNames.length == 1){
				ele.className = value;
			}else{
				getClass = " "+ele.className+" ";
				for(var i=0,len=classNames.length; i<len ;i++){
					var cname=classNames[i];
					if(!hasClass(ele,cname)){
						getClass += cname+" ";
					}
				}
				ele.className = trim(getClass);
			}
		}
	}
}

var removeClass=function(ele,value){
	var rclass = /[\n\t\r]/g,classNames,getClass;
	if((value&&typeof value === "string")||value === undefined){
		classNames = (value||"").split(rspace);
		if(ele.nodeType === 1 && ele.className){
			if(value){//存在查找要移除的类
				getClass =  " "+ele.className+" ".replace(rclass," ");//左右空格,为了使类中各类间均等,方便后面替换
				for(var i=0,len=classNames.length; i<len; i++){
					getClass = getClass.replace(" "+classNames[i]+" "," ")
				}
				ele.className=trim(getClass);
			}else{//不存在移除所有类
				ele.className = "";
			}
		}
	}
}
var toggleClass=function(ele,value){
	if(typeof value === "string"){
		if(hasClass(ele,value)){
			removeClass(ele,value);
		}else{
			addClass(ele,value);
		}
	}
}


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明jQuery动态添加样式
喜欢 (0)
加载中……