当前位置: 首页 > 面试题库 >

通过jQuery为将来创建的元素添加CSS规则

刘子实
2023-03-14
问题内容

我有一个不寻常的问题。我已经做了很多次这样的事情:

$('#selector').css('color','#00f');

我的问题是我创建了一个<div id="selector">,然后调用上面的命令,它可以正常工作。

现在,在另一个事件上,稍后,我从DOM中删除该元素,并在以后的时间以相同的ID重新添加它。该元素现在没有color:#00f

有没有一种方法可以在CSS中添加规则,以使其影响将来使用相同的id/创建的项目class?我喜欢jQuery,但是任何使用纯JavaScript的东西也都可以。

它必须是动态的,而且我不知道要放在CSS文件中的类。另外,我计划在整个应用过程中多次更改单个属性。例如,设置colorblack,要blue,要red,和回black

我得到了 @lucassp 的回答,这就是我的最终结果:

function toggleIcon(elem, classname)
{
    if($(elem).attr('src')=='img/checkbox_checked.gif')
    {
        $(elem).attr('src', 'img/checkbox_unchecked.gif')
        //$('.'+classname).hide();//this was the old line that I removed
        $('html > head').append($('<style>.'+classname+' { display:none; }</style>'));
    }
    else
    {
        $(elem).attr('src', 'img/checkbox_checked.gif')
        //$('.'+classname).show();//this was the old line that I removed
        $('html > head').append($('<style>.'+classname+' { display:block; }</style>'));
    }
}

我还想说 @Nelson 可能是最“正确的”,尽管它需要花费更多的工作才能进入始终可以正常工作的应用程序代码,而这并不是我目前要花费的精力。

如果将来不得不重写(或写类似的东西),我会考虑detach()


问题答案:

这应该工作:

var style = $('<style>.class { background-color: blue; }</style>');
$('html > head').append(style);


 类似资料:
  • 主要内容:添加新的 HTML 内容,jQuery append() 方法,实例,jQuery prepend() 方法,实例,通过 append() 和 prepend() 方法添加若干新元素,实例,jQuery after() 和 before() 方法,实例,通过 after() 和 before() 方法添加若干新元素,实例通过 jQuery,可以很容易地添加新元素/内容。 添加新的 HTML 内容 我们将学习用于添加新内容的四个 jQuery 方法: append() - 在被选元素的结

  • 问题内容: 我正在使用jQuery CSS函数设置某些元素的样式 这可行,但是页面加载后会动态创建部分元素。这应该是 我被创建的事件困住了。有任何想法吗? 问题答案: 创建的元素没有事件(无论如何都无法通用)。你可以 将规则添加到样式表,以便将其自动应用于新创建的元素 创建元素时,链接 css() 方法: 动态创建一个新的样式表:

  • 问题内容: 是否有任何方法可以使用jQuery方法添加作为Angular指令的元素,并让Angular进行其编译/链接以使其正常工作,就像您首先将指令包括在内一样? 例: 目前,它只是附加了一个空的DOM元素,称为“ my-angular-directive”,但Angular不会发挥作用并发挥作用。 问题答案: 正确的方法是使用:$ compile, 并在指令返回的情况下:(这是推荐的方法)然后

  • 问题内容: 我的页面布局涉及很多绝对位置和z索引位置,因此有很多元素相互重叠。 元素之一仅包含文本,它悬停在许多其他事物之上。 在该元素下方,有几个应用了CSS悬停伪类的元素。 当鼠标经过包含文本的元素时,我想以某种方式使下面的Element响应鼠标的存在并激活伪类样式。 有没有什么样式的元素,以便它允许悬停通过它传递给下面的任何元素? 使用JavaScript并不是很难,但是为了使事情尽可能简单

  • 我有一个html模板和im在页面加载时用jquery post获取数据。我想用foreach创建模板div并且尽可能的基本。我的意思是我想尽可能地把它弄干净。我的数据是一个对象数组。我通过以下方式获取数据: } 我的数据是: ] 和我的模板: 我想做的是: 任何帮助都是感激的。

  • 本文向大家介绍jQuery 添加元素和删除元素的方法,包括了jQuery 添加元素和删除元素的方法的使用技巧和注意事项,需要的朋友参考一下 添加新的 HTML 内容 我们将学习用于添加新内容的四个 jQuery 方法: append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() - 在被选元素之前插