【问题标题】:How to override a class using jquery如何使用 jquery 覆盖一个类
【发布时间】:2011-01-20 12:54:34
【问题描述】:

jQuery CSS 类设置以下内容:

 .newwidget { border: 1px solid #5a9ee9; background: #5a9ee9 url(t6.gif) 50% 50% repeat-x; color: #ffffff; font-weight: bold; text-transform: uppercase; padding:3px 3px 3px 10px; font-size:10px}

如何覆盖这个类并添加一个新类,以便我可以在其中放置不同的样式?也许我必须在添加课程之前删除它们。这是怎么做到的?

谢谢

【问题讨论】:

  • 您是否尝试重新定义 newwidget 以使该类的所有元素都具有新样式?或者您是否尝试更改现有元素的类?
  • 您知道,虽然删除旧类是一种选择,但不是必需的。如果您想使用旧样式中的样式,只需使用addClass(),它将使用新类中的样式“增强”元素。否则,请使用下面给出的解决方案。
  • 谢谢.......................

标签: jquery css jquery-ui jquery-selectors


【解决方案1】:

如果您希望完全替换元素上的现有类,可以使用 .attr() 方法。

$('#elementId').attr('class', 'newClassName');

elementId 上的任何类都将被替换。

【讨论】:

    【解决方案2】:

    我认为值得注意的是,您可以通过省略 removeClass() 中的参数来删除所有类:

    $('.newwidget').removeClass().addClass('newerwidget');
    

    【讨论】:

      【解决方案3】:
      $(this).removeClass('oldClass').addClass('newClass');
      

      【讨论】:

        【解决方案4】:

        jQuery 定义 addClass()removeClass() 就是为了这个目的:

        $("#ElementId").removeClass('oldClassName').addClass('newClassName');
        

        这两个功能很明显。像这样将它们链接起来,一键更改课程。

        如果您想将所有元素从“oldClass”更改为“newClass”,可以使用如下选择器:

        $(".oldClassName").removeClass('oldClassName').addClass('newClassName');
        

        【讨论】:

          【解决方案5】:

          你可以remove旧班和add新班:

          $myJQObject.removeClass('newwidget').addClass('newclass');
          

          【讨论】:

            【解决方案6】:

            使用带有 addClass 和 removeClass 的类选择器。

            $('.newwidget').removeClass('newwidget').addClass('newerwidget');
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-12-12
              • 1970-01-01
              • 2014-01-24
              • 2018-11-05
              • 1970-01-01
              • 2019-01-02
              • 2022-01-24
              • 1970-01-01
              相关资源
              最近更新 更多