0

例如,我有几个选择器形式的 CSS 类,.myclass.myclass2我想将这两个类应用于一个元素。

我可以.split()使用字符串并应用每个类.addClass(),但在此之前,我想知道是否有一个“本机”jQuery 函数来做这种事情,或者是否有人编写了一个函数来处理它。

为了更好地解释:我想要一个可以将 CSS 选择器传递给它的函数,它将类添加到元素中。喜欢$('#myelem').addClass('.myclass.myclass')

(我也希望它能够处理其他 CSS 选择器,例如#myid,但我担心这要求太多,我可能需要一个完整的解析器功能。)

4

4 回答 4

3

addClass需要一个空格分隔的字符串,所以你需要做的就是用空格替换点:

var classes = '.myclass.myclass2';
$(element).addClass(classes.replace(/\./g,' ').trim()))
于 2013-06-19T03:40:52.283 回答
1

像这样在样式标签内创建两个类

        .a {
       backgroud-color:red;
       }
     .b{
       color:blue; 
       }
      </style>

现在添加您的 jquery 代码

然后在javascript代码中

       <script type="text/javascript">

       $(document).ready(function(){

      $('#mydiv').addClass(a).addCLass(b);

或者

     $("#mydiv").addClass({a,b});

或者

      $('#mydiv').addClass(a);
  $('#mydiv').addClass(b);



     });
     </script>

这是html

          <html>
       <body>
                 <div id="mydiv"></div>
              </body>
                  </html>
于 2013-06-19T03:53:08.513 回答
1

您可以将其添加到您的脚本中:

$.fn.oldAddClass = $.fn.addClass;
$.fn.addClass = function(x){
    if(typeof x == 'string'){
        this.oldAddClass(x.replace(/\./g, ' '));
    }else{
        this.oldAddClass(x);
    }
}

然后addClass()用你的点打电话:

$(el).addClass('.class1.class2');

小提琴:http: //jsfiddle.net/8hBDr/

于 2013-06-19T03:54:31.273 回答
-1

您不能将 css 选择器(如#elemid.myclass)直接添加到 native 中的元素jQuery。下面的示例显示了如何使用空格分隔的字符串添加多个类。

$(elem).addClass("myclass mycalss2")

和文档: http ://api.jquery.com/addClass/

于 2013-06-19T03:41:32.753 回答