CSS代码以JavaScript功能
我有此JavaScript方法:CSS代码以JavaScript功能
<script type="text/javascript">
function MyFunction(sender, eventArgs) {
if (someCondition) {
//css
}
}
</script>
CSS代码欲被执行的是:
<style type="text/css">
.classInsideTheClassWhichEntersTheIf
{
background: url(Images/myImage.png) !important;
}
</style>
但只对那些进入上述if条件的细胞。如果我在外面写它,它适用于每个细胞。是这样的可能吗?如果是的话,该怎么做?
有几种方法可以做到这一点。
选项1
<script type="text/javascript">
function MyFunction(sender, eventArgs) {
if (someCondition) {
someelement.style.cssText = "background: url(Images/myImage.png) !important;"
}
}
</script>
选项2
<script type="text/javascript">
function MyFunction(sender, eventArgs) {
if (someCondition) {
someelement.className = "someclass"
}
}
</script>
其中,
<style>
.someclass{
background: url(Images/myImage.png) !important;
}
</style>
选项3
<script type="text/javascript">
function MyFunction(sender, eventArgs) {
if (someCondition) {
someelement.setAttribute('style', 'background: url(Images/myImage.png) !important;');
}
}
</script>
下面是一个伪代码,
if(condition)
someelement.style.cssText = "background: url(Images/myImage.png) !important;";
我更新了我的问题,能否再次看到它? – 2011-12-19 13:01:36
是的,为for循环中的每个元素调用MyFunction。病毒更新挂起。 – 2011-12-19 13:03:01
它被调用的每个元素,这是一个事件,我不能称它为特定的元素。 – 2011-12-19 13:03:56
您可以修改您需要的元素的样式属性。但更灵活的方法是用该css代码定义一个css类,并将该类添加到过滤的元素。
<script type="text/javascript">
function MyFunction(sender, eventArgs) {
if (someCondition) {
someelement.style.backgroundImage = "url(Images/myImage.png)";
}
}
</script>
!important
是不必要在这里,因为内嵌样式覆盖非内嵌样式。
+1(尽管您错过了“!重要在这里不重要”的机会)。 – nnnnnn 2011-12-19 13:47:42
想象一下,你有一个细胞id="myCell"
和你的条件是真实的你想要什么。 现在你可以使用像这样做:
$(document).ready(functio() {
function SET(id) {
$('#'+id).css('background-image','yourNewImage.png');
}
if (condition == true) {
SET('myCell');
}
});
使用.css
,你可以任意值分配给每个CSS属性的每个元素。在这里我改变了背景图像。
假设OP愿意添加jQuery库... – nnnnnn 2011-12-19 13:05:56
你是什么意思“仅适用于进入条件的细胞”?您的JavaScript是内联定义的吗?你的风格定义在哪里?我希望不在文档内部? – brezanac 2011-12-19 12:43:16
请提供您的代码的更多细节。您的代码中没有单元格,我们不知道发件人是什么等。 – KSDaemon 2011-12-19 12:44:35