【问题标题】:jquery adding a class to styles only oncejquery只将一个类添加到样式中一次
【发布时间】:2018-04-06 13:38:46
【问题描述】:

我的代码允许将类添加到“样式”部分。

function appendCssClassToStyle(clas, prprty, val)
{
  $('#myStyle').append('.' + clas + '{' + prprty + ':' + val + ';}');
}

此代码多次添加该类。问题是我希望只有在样式部分中不存在类的情况下才能添加一个类。我怎样才能做到这一点?感谢您的帮助!

【问题讨论】:

  • 这会呈现什么?
  • 您能添加更多描述吗?也添加你的html。谢谢
  • 您到底想达到什么目的?无论是什么,我都可以向您保证,有更好更简单的方法
  • 请问您希望将新样式声明直接添加到<style> 块的原因是什么?如果您只想让元素改变样式,请查看下面的答案。

标签: javascript jquery


【解决方案1】:

你可以这样使用:

$('.element:not(.class-name)').addClass('class-name');

这里提到https://stackoverflow.com/a/33265116/2469264

【讨论】:

    【解决方案2】:

    我认为您应该阅读 jQuery 的使用以及如何将内联样式添加到 html 元素...

    内联样式:

    <div class="someEl" style="background-color:#ff0000;">Some awesome text</div>
    

    这个元素有一个 .someEl 类,您可以在 CSS 样式表中设置它的样式:

    .someEl {
        background-color:#fff; /* setting bg color to white */
        color:#000; /* setting font color to black */
    }
    

    由于内联样式会覆盖样式表中的样式,因此上面会产生一个带有红色 (#ff0000) 背景的 div。

    使用 jQuery,您可以在元素中添加和删除内联样式。 添加内联样式:

    $('.someEl').css({
       'color': '#fff',
       'backgroundColor': '#ff0000'
    });
    

    删除内联样式:

    $('.someEl').css('backgroundColor', '');
    

    【讨论】:

    • 这不是 OP 所要求的。他想将 CSS 类定义添加到
    • @MarioCianciolo 这本身就是个坏主意。这是一种更好的方法,尽管我同意答案应该已经解释了这一点。虽然 prprty 是一个动态键,但它是有缺陷的,所以这种语法不起作用。
    • 我同意这是个坏主意,但您的回答仍然无效。
    • 是的,我以为他在尝试做style=".className{prprty:val}"
    • @MarioCianciolo 不过,我认为 OP 正在尝试做 $.css() 函数存在的用途..
    【解决方案3】:

    你可以试试这个

    function appendCssClassToStyle(clas, prprty, val)
    {
      //var prprty = 'text-align';
      //var val = 'center';
      $('.' + clas).css(prprty,val);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 2021-08-12
      相关资源
      最近更新 更多