我有一个有点不寻常的问题。我已经做过很多次类似于这样的事情:
$('#selector').css('color','#00f');
我的问题是,我创建了一个<div id="selector">
,然后调用上述命令,它可以正常工作。现在,在另一个事件之后,我从DOM中删除该元素,并在稍后的时间再次添加具有相同id的元素。这个元素现在没有
color:#00f
。是否有一种方法可以在CSS中添加规则,以便它将影响将来创建的具有相同
id
/class
的项目?我喜欢jQuery,但只使用纯JavaScript也可以。它必须是动态的,我不知道要放在CSS文件中的类。此外,我计划通过应用程序的过程几次更改单个属性。例如,将
color
设置为black
,然后设置为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()
。
.css()
方法设置$('#selector')
元素的样式属性。它不会创建CSS规则。 - Zefiryn.css()
方法的结果感到惊讶。回复给了你一些方向,告诉你如何处理这个问题。 - Zefiryncss()
,我知道它只是编辑匹配的 DOM 元素,而不会创建永久规则。 - Landon