日期:2014-05-16 浏览次数:20442 次
/* * 获取指定类别选择器的所以样式值 * @method getClassStyle * @param {String} name 类别选择器的名字 * @param {Document} doc 指定的document * @return {String} 该样式的cssText */ getClassStyle : function(name, doc) { if(!name) { return ""; } name = name.replace(/^\s*/, "");// 去除前置空白 if(0!=name.indexOf('.') && 0!=name.indexOf('#')) { name = '.' + name; } var doc = doc || document, regStr = name.replace(/\./, '\\.').replace(/\b/,'\\b') + '\\b\\s*[,|{]', reg = new RegExp(regStr, 'i'); ret = ''; for(var i=0; i<doc.styleSheets.length; i++) { try { var styleSheet = doc.styleSheets[i], rules = styleSheet.cssRules || styleSheet.rules; for(var j=0; j<rules.length; j++) { var rule = rules[j], cls = rule.selectorText; // rule.selectorText可能不存在 if(cls && reg.test(cls)) { var newStr = /{.*?}/.exec(rule.cssText); newStr = newStr===null ? '' : newStr[0]; // 去重 if(-1 == ret.indexOf(newStr)) { ret += newStr; } } } } catch(e) { // Do nothing } } // 过滤掉大括号 return ret.replace(/{|}/g,''); }