2011-12-19 74 views
3

我有此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條件的細胞。如果我在外面寫它,它適用於每個細胞。是這樣的可能嗎?如果是的話,該怎麼做?

+0

你是什麼意思「僅適用於進入條件的細胞」?您的JavaScript是內聯定義的嗎?你的風格定義在哪裏?我希望不在文檔內部? – brezanac 2011-12-19 12:43:16

+0

請提供您的代碼的更多細節。您的代碼中沒有單元格,我們不知道發件人是什麼等。 – KSDaemon 2011-12-19 12:44:35

回答

12

有幾種方法可以做到這一點。

選項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;"; 
+0

我更新了我的問題,能否再次看到它? – 2011-12-19 13:01:36

+0

是的,爲for循環中的每個元素調用MyFunction。病毒更新掛起。 – 2011-12-19 13:03:01

+0

它被調用的每個元素,這是一個事件,我不能稱它爲特定的元素。 – 2011-12-19 13:03:56

0

您可以修改您需要的元素的樣式屬性。但更靈活的方法是用該css代碼定義一個css類,並將該類添加到過濾的元素。

3
<script type="text/javascript"> 
    function MyFunction(sender, eventArgs) { 
     if (someCondition) { 
      someelement.style.backgroundImage = "url(Images/myImage.png)"; 
     } 
    } 
</script> 

!important是不必要在這裏,因爲內嵌樣式覆蓋非內嵌樣式。

+4

+1(儘管您錯過了「!重要在這裏不重要」的機會)。 – nnnnnn 2011-12-19 13:47:42

-2

想象一下,你有一個細胞id="myCell"和你的條件是真實的你想要什麼。 現在你可以使用像這樣做:

$(document).ready(functio() { 
    function SET(id) { 
     $('#'+id).css('background-image','yourNewImage.png'); 
    } 
    if (condition == true) { 
     SET('myCell'); 
    } 
}); 

使用.css,你可以任意值分配給每個CSS屬性的每個元素。在這裏我改變了背景圖像。

+2

假設OP願意添加jQuery庫... – nnnnnn 2011-12-19 13:05:56