最高效率的作法是更改 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) */

解决方案 »

  1.   

    谢谢 btbtd  的回答。实际问题其实蛮复杂的,有的是变色(黑白色),有的是切换数字(1和0的切换)你这样使用css太局限了。
      

  2.   

    用js通过点击“全部”来修改css样式
      

  3.   

    局限呀...
    给你个东西看看..可以有多容易更改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)
      

  4.   

    这么问吧,如何通过正则取得相同name的button对象?
      

  5.   

    如何通过正则取得相同name的button对象?
    这和正则有关系么?
      

  6.   

    这个就不需要正则了吧JS操作更改CSS就可以了!