【问题标题】:Remove (!important) attribute from class [duplicate]从类中删除(!重要)属性[重复]
【发布时间】:2013-04-26 17:13:14
【问题描述】:

我需要使用 jQuery 从元素中删除 !important-attribute。这可能吗?

虽然我想为它创建一个 js-fiddle,但我注意到它甚至不适用于 not-!important 样式:

http://jsfiddle.net/u4q2P/2/

我的代码有什么问题?

所以如果有人能解释为什么 jQuery 没有像它应该的那样删除 CSS 属性(参见 f.e. http://www.bennadel.com/blog/2442-Clearing-Inline-CSS-Properties-With-jQuery.htm

【问题讨论】:

  • 这没有回答我的问题,为什么它甚至不删除不重要的属性 - 但感谢那些甚至没有阅读问题的人的反对
  • 它确实回答了您的第一个问题,您的第二个问题与第一个问题和您的标题无关。
  • 既然可以使用退格按钮,为什么还要使用 jquery?
  • 用退格键做什么?如果这将是一个可行的解决方案,您真的认为我不够聪明,无法删除重要规则吗?这样的答案甚至得到了投票??
  • 我想说的是,如果你想设置一个属性,只需通过带有 !important 的 jquery 设置它,你不需要从现有属性中删除 !important。

标签: jquery css attributes


【解决方案1】:

我认为你需要使用attr() 并在你的样式值中设置!important 来覆盖它:

$('#myButton').on('click', function () {
    $('#myDiv').attr('style', 'padding: 0px !important;');
})

Fiddle

【讨论】:

    【解决方案2】:

    我猜你希望填充再次成为默认值?

    如果要回补默认值:http://jsfiddle.net/u4q2P/4/

    $('#myButton').on('click', function () {
        $('#myDiv').css('padding', 'inherit');
    })
    

    编辑,因为问题不是很清楚,我做了这个编辑

    如果要将填充设置为 0,请使用:http://jsfiddle.net/u4q2P/5/

    $('#myButton').on('click', function () {
        $('#myDiv').css('padding','0px');
    })
    

    如果您制作了一个好的 jsfiddle,我们可以在几秒钟内为您提供帮助:http://jsfiddle.net/u4q2P/6/

    $('#myButton').on('click', function () {
        $('#myDiv').attr('style', 'padding: 0px !important');
    })
    

    【讨论】:

    • 不,我想删除填充属性!
    • 等于不设置padding等于继承....
    • @Bondye 如果填充具有属性!important,这将不起作用
    • @user1479606 比 OP 制作了一个令人困惑的 jsfiddle..
    【解决方案3】:

    原文取自Can I use jquery to remove/negate css !important rule? 不幸的是,如果不使用 !important 作为包含的 theirs.css 下方的内联/内部样式,您将无法覆盖 !important。

    您可以定义一个 !important 样式并将其添加到 .stubborn 然后调整不透明度。见下文,

    CSS:

    div.hidden_block_el { 
       display: block !important;
       opacity: 0;
    }
    

    JS:

    $('.stubborn')
    .addClass('hidden_block_el')
    .animate({opacity: 1});
    

    演示: http://jsfiddle.net/jjWJT/1/

    替代方法(内联),

    $('.stubborn')
    .attr('style', 'display: block !important; opacity: 0;')
    .animate({opacity: 1});
    

    【讨论】:

      【解决方案4】:

      空的样式什么都不是。在填充处输入 0 或其他内容:)

      $('#myButton').on('click', function () {
          $('#myDiv').css('padding', '0');
      })
      

      【讨论】:

      • 如果你给它们一个空值,jQuery 应该删除属性!
      • 那对您来说效果如何?我把我的小提琴改成了 0,它起作用了!
      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 2023-04-02
      • 2010-11-16
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      相关资源
      最近更新 更多