最高效率的作法是更改 CSS给每组按钮的父容器一个 classname点击时从 classname 入手...记点 classname 是可以多个并存的...function fAddClass(XEle, XClass)
{/* shawl.qiu code, void return */
if(!XClass) throw new Error("XClass 不能为空!");
if(XEle.className!="")
{
var Re = new RegExp("\\b"+XClass+"\\b\\s*", "");
XEle.className = XEle.className.replace(Re, "");
XEle.className = XClass+" "+XEle.className;
}
else XEle.className = XClass;
}/* end function fAddClass(XEle, XClass) */function fRemoveClass(XEle, XClass)
{/* shawl.qiu code, void return */
if(!XClass) throw new Error("XClass 不能为空!");
if(XEle.className!="")
{
var Re = new RegExp("\\b"+XClass+"\\b\\s*", "");
XEle.className = XEle.className.replace(Re, "");
}
}/* function fRemoveClass(XEle, XClass) */
{/* shawl.qiu code, void return */
if(!XClass) throw new Error("XClass 不能为空!");
if(XEle.className!="")
{
var Re = new RegExp("\\b"+XClass+"\\b\\s*", "");
XEle.className = XEle.className.replace(Re, "");
XEle.className = XClass+" "+XEle.className;
}
else XEle.className = XClass;
}/* end function fAddClass(XEle, XClass) */function fRemoveClass(XEle, XClass)
{/* shawl.qiu code, void return */
if(!XClass) throw new Error("XClass 不能为空!");
if(XEle.className!="")
{
var Re = new RegExp("\\b"+XClass+"\\b\\s*", "");
XEle.className = XEle.className.replace(Re, "");
}
}/* function fRemoveClass(XEle, XClass) */
解决方案 »
- 求教javascript中如何实现数组中的元素删除和添加
- 弹出窗口再弹出窗口
- js字符串拼接与替换
- 固定位置的层 asp和htm的区别
- 如何让多行文本框中,光标所在段落的行首加上一个[l]
- firefox 浏览器中如何取到 frameset对象
- window.location.href not working in ie 5.0 ?waiting online~!
- 如何使一个层位于ListBox控件的上面,用z-index却没有效.100分求答案
- 使用按钮提交邮件,请大侠指点。
- 通过event对象获取target
- 一些常用的js验证.有错之处请指证.
- 怎么实现淘宝网上那种防图片盗用效果,图片Flash播放
给你个东西看看..可以有多容易更改CSS...
function StyleSheet(XSet)
{//shawl.qiu code, date: 2008-3-20, version: 1.0
this.Sheets = null;
if(XSet!=null)
{
this.Sheets = fGetStyleSheet(XSet);
}
}//end function StyleSheet(XSet)StyleSheet.prototype.Rules = fRules;
StyleSheet.prototype.HasRule = fHasRule;
StyleSheet.prototype.FixRuleName = fFixRuleName;
StyleSheet.prototype.AddRule = fAddRule;
StyleSheet.prototype.SetRuleProp = fSetRuleProp;
StyleSheet.prototype.GetRuleProp = fGetRuleProp;function fRules(XRule)
{
var Rules = this.Sheets.cssRules||this.Sheets.rules;
if(typeof XRule!="undefined")
{
if(typeof XRule=="number")
{
return Rules[XRule];
}
else
{
for(var i in Rules)
{
if(typeof Rules[i].selectorText=="string")
{
var SelectorName = this.FixRuleName(Rules[i].selectorText);
if(SelectorName == this.FixRuleName(XRule))
{
return Rules[i];
}
}
}//end for(var i in Rules)
return null;
}
}
return Rules;
}//end function fRules(XRule)function fHasRule(XRule)
{
if(typeof XRule == "undefined") return false;
if(this.Rules(XRule)==null) return false;
return true;
}//end function fHasRule(XRule)function fFixRuleName(XString)
{
if(typeof XString!="string") return "";
if(/^(?:\.|\#)/.test(XString)==false)
{
return XString.toUpperCase();
}
return XString;
}//end function fFixRuleName(XString)function fGetStyleSheet(XStyle)
{//shawl.qiu code, return object:document.styleSheets[x]
var Index = 0, Style = document.getElementsByTagName('style');
if(typeof XStyle=="number") return document.styleSheets[XStyle];
for(var i=0, j=Style.length; i<j; i++)
{
if(typeof XStyle=="string")
{
if(Style[i].id==XStyle)
{
Index = i; break;
}
}
else
{
if(Style[i]==XStyle) Index = i; break;
}
}
return document.styleSheets[Index];
}//end function fGetStyleSheets(XStyle)function fFormat(sStr)
{// shawl.qiu code, return sStr
var Len = arguments.length;
switch(Len)
{
case 0: return "";
case 1: return sStr;
}
var Re = null;
for(var i=1, j=0; i<Len; i++, j++)
{
Re = new RegExp(["\\{", j, "\\}"].join(""), "g");
sStr = sStr.replace(Re, arguments[i]);
}
Re = null;
return sStr;
} // end function fFormat(sStr)
function fAddRule(sRuleName, sRuleText, iPos)
{
if(!sRuleName) return;
if(!sRuleText) sRuleText = "transparent";
var RulesLen = this.Rules().length;
if(typeof iPos == "undefined") iPos = RulesLen;
if(iPos>RulesLen) iPos = RulesLen;
if(this.Sheets.insertRule)
{
this.Sheets.insertRule(sRuleName+' {'+sRuleText+'}', iPos);
}
else if(this.Sheets.addRule)
{
this.Sheets.addRule(sRuleName, sRuleText, iPos);
}
}//end function fAddRule(sRuleName, sRuleText, iPos)function fFixPropName(sRuleName)
{
sRuleName=sRuleName.replace
(
/\-(.)/g
, function($0, $1)
{
return $1.toUpperCase();
}
);
return sRuleName;
}//end function fFixRuleName(sRuleName)function fSetRuleProp(XRule, XProp, XValue)
{
var Rule = this.Rules(XRule);
var FixedProp = fFixPropName(XProp);
try
{
if(!this.HasRule(XRule))
{
this.AddRule(XRule, fFormat("{0}:{1}", XProp, XValue));
}
else
{
Rule.style[FixedProp] = XValue;
}
}catch(e){}
}//end function fSetRuleProp(XRule, XProp, XValue)function fGetRuleProp(XRule, XProp)
{
var Rule = this.Rules(XRule);
var FixedProp = fFixPropName(XProp);
return Rule.style[FixedProp];
}//end function fGetRuleProp(XRule, XProp)
这和正则有关系么?