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

标签 javascript jquery css

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

$('#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);

关于javascript - 通过 jQuery 为将来创建的元素添加 CSS 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13075920/

相关文章:

javascript - 添加类似 Accordion 的设置?

html - 为什么 <div> 下的 <li> 元素与 <ul> 下的 <li> 元素渲染不同?

javascript - 在 React 中将 onChange 事件从子级传递给父级

javascript - IE7 比 IE6 好在哪里?

javascript悬停动态失败

css - Chrome 上的剪辑路径在边缘留下一条奇怪的线

javascript - 添加高亮效果,css float

javascript - 部分隐藏的 jQuery 倒数计时器

javascript - jQuery中使用map函数将列表的数据属性获取到数组中

javascript - 如何通过单击 <a> 标签来阻止图像悬停