【问题标题】:Defining a class with specific style dynamically in jQuery在 jQuery 中动态定义具有特定样式的类
【发布时间】:2010-04-25 21:02:47
【问题描述】:

是否可以使用jQuery动态定义具有特定样式属性的类,而不是使用该类设置所有元素的样式?

创建完所有元素后,我可以在脚本末尾设置类的属性,但这是最好的方法吗?如果我在脚本开头使用$('.class').css('property','value'); 定义类的样式,则不会发生任何事情,因为尚未创建类.class 的元素,对吧?

【问题讨论】:

    标签: javascript jquery css


    【解决方案1】:

    正确的方法是使用 CSS。如果您希望具有“foo”类的元素具有一堆属性,则将这些属性放在 CSS 文件中并将它们与适当的选择器相关联:

    .yourClass {
      font-weight: bold;
      color: green;
    }
    

    如果您需要动态执行此操作,可以使用 Javascript 编写 CSS 块。在你的页面中放置一个<style> 元素并给它一个“id”值:

    <style id='dynamicStyle'></style>
    

    然后你可以用jQuery来设置它:

    $('#dynamicStyle').text(".yourClass { font-weight: bold; }");
    

    【讨论】:

      【解决方案2】:

      如果我理解你的话,你想为特定元素添加样式。

      您不必使用.css(a,b) 来执行此操作。 jQuery 有一个名为addClass("className"); 的函数,它可以为你想要的任何元素添加一个类。

      $('.originalClass').addClass('addedClass');
      

      它不会覆盖原来的。

      这是你想要的吗?


      编辑:

      或者你是说你想用javascript修改你的样式表?

      如果是这种情况,有修改样式表属性的 javascript 规则。

      如果您(出于某种原因)无法更改样式表,那么也许您可以简单地将您的样式存储在一个对象中,然后应用它。

      var stylesToAdd = { background:"orange", border:"1px solid blue" }
      

      并使用.css() 应用它们。

      $('#myElement').css(stylesToAdd);
      

      【讨论】:

      • 他希望能够为某个类的元素组成样式信息,然后让这些样式动态生效。而且他不想让 jQuery 直接修改每个元素的样式。
      • 问题是在我的 javascript 中指定该类的样式。
      • 我明白了。 Pointy 的解决方案会起作用,或者我添加了另一个选项。
      【解决方案3】:

      不确定您的原因是什么,但是是的 - 您必须在创建元素后调用脚本。如果您不想将脚本放在文档末尾,请将其包装在

      $(document).ready(function() {
       ...
      });
      

      或者,或者,简写

      $(function() {
       ...
      });
      

      所以它会在所有 HTML 加载完毕后触发。

      【讨论】:

      • 我正在使用 jQuery 在我的页面上生成元素,并且我想通过使用类而不是使用 css() 指定所有样式属性来使我的代码更整洁。问题是我想动态设置这些类的属性。此外,有问题的元素正在$(document).ready(function(){}); 中生成
      • 伙计,因为试图回答一个模糊的问题而得到 -1 真的很刺痛。您在寻找.addClass() 吗?这方面没有更多的答案,因为害怕更多的惩罚:P
      • 对不起,如果我的问题含糊不清,请尽力解释,你不应该得到-1。 Pointy 的回答和 patrick 的编辑一针见血。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多