代码之家  ›  专栏  ›  技术社区  ›  ebattulga

jquery中css的类属性

  •  2
  • ebattulga  · 技术社区  · 14 年前

    我需要jquery函数执行以下操作:

    第一:

    <a class="MyClass1 Myclass2 {padding-top:10px;height:20px;}"></a>
    

    调用函数后:

    <a class="MyClass1 Myclass2" style="padding-top:10px;height:20px;"><a/>
    

    函数必须与所有元素一起工作

    编辑

    例如:我在asp.net mvc上使用。每个模块都包含不同的主题属性。此代码为模块 partial view 章节。

    <div class="<%=Model.Theme.HeaderClass%>">...content goes here
    </div>
    <div class="<%=Model.Theme.BodyClass%>">...content goes here</div>
    <div class="<%=Model.Theme.PagerClass%>">
    <a class="<%=Model.Theme.PagerItemClass%>"> </a>
    </div>
    
    5 回复  |  直到 14 年前
        1
  •  1
  •   bobince    14 年前

    别这样,太可怕了。

    如果你真的需要:

    $('.MyClass1.MyClass2').each(function() {
    
        // Find classes with name {...}
        //
        var classes= this.className.split(/\s+/g);
        for (var i= classes.length; i-->0;) {
            if (classes[i].slice(0, 1)==='{' && classes[i].slice(-1)==='}') {
    
                // Remove class from classname list, copy content to style
                //
                var styles= classes.splice(i, 1)[0].slice(1, -1);
                this.className= classes.join(' ');
                $(this).attr(style, styles);
            }
        }
    };
    

    真的,真的,这是个糟糕的主意。

        2
  •  0
  •   newbie    14 年前

    可以使用jQuery addClass()方法,只需将css放入类中,然后将该类添加到所选元素中。

    http://api.jquery.com/addClass/

        3
  •  0
  •   Alpesh    14 年前

    试试这个-

    <html>
    <head>
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
    var classes = $('a').attr('class').split(' ');
    $('a').attr('class',classes[0]+' '+classes[1]);
    var style = classes[2].split('{');
    $('a').attr('style',style[1]);
    });
    </script>
    </head>
    <body>
    <a class="MyClass1 Myclass2 {padding-top:10px;height:20px;}" href="#">hi</a>
    </body>
    </html>
    

    这完全符合你的要求。

    希望有帮助。

        4
  •  0
  •   sjngm quinti    13 年前

    首先获取link元素

    var link = $('a.Myclass1').filter('Myclass2');
    var classes = link.attr('class');
    

    然后使用regex获取特定的类

    var styleClass = classes.match(/\{(.+)\}/gi);
    

    然后从原始链接中删除它并添加样式

    link.removeClass(styleClass).attr('style', styleClass);
    

    对于多个类,可以使用.each()方法,如下所示:

    link.each(function() {
              var classes = this.attr('class');
              var styleClass = classes.match(/{(.+)}/gi);
              this.removeClass(styleClass).attr('style', styleClass);
    });
    
        5
  •  -2
  •   Aman    14 年前

    亲爱的,你可以用class和.classname。试试这个