2010-12-23 62 views
0

在JavaScript中的顏色分配給具有id'ID'元素中使用jQuery我們分配如下:如何測試某個元素是否已具有指定的顏色?

$('#ID').css({'background-color':'#FF0000'}); 

但如何知道該元素是否已經被分配了一個顏色?

我需要檢查元素是否已經被賦值爲紅色。如果已經分配了紅色,我需要在JavaScript中設置一些標誌。

回答

0

在jquery中使用.attr()函數來獲取有關屬性的信息。

http://api.jquery.com/attr/

喜歡的東西

$("#ID").attr('style') 

應該是一個良好的開端。

+0

感謝您的響應.. – Joy 2010-12-23 08:42:30

1

像哈伊姆Evgi建議,你可以得到的CSS的值元素,但是如果你試試這個

console.log(jQuery('#someId').css('background-color')); 

對於沒有任何background-color集的元素,您將獲得transparent。 現在讓我們假設你想擴展你的用例不僅涵蓋#f00,而且是一個可變的顏色,你可能會陷入困境。

我最初的想法,一邊讀你的問題是使用CSS類來鑑定的變化:

CSS

/* i assume red indicates an error :) */ 
.error { background-color: #f00; } 

的JavaScript

if(jQuery('#someId').hasClass('error')) { 
    /* do something fancy */ 
} 

jQuery.each(jQuery('.error'), function(index, value) { 
    /* do something with each erroneous element */ 
}); 

這麥es設置和檢查更改也會稍微舒適一些。

[編輯:樣品片段]

<!DOCTYPE html> 
<html> 
    <head> 
    <style type="text/css"> 
     .error{ background-color: #f00; } 
    </style> 
    <script type="text/javascript" language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script> 
    <script type="text/javascript" language="javascript"> 
    jQuery(document).ready(function() { 
     console.log('Background #someId: ' + jQuery('#someId').css('background-color')); // transparent 
     console.log('Background #someOtherId: ' + jQuery('#someOtherId').css('background-color')); // transparent 

     console.log('#someId has error: ' + jQuery('#someId').hasClass('error')); // false 
     console.log('#someOtherId has error: ' + jQuery('#someOtherId').hasClass('error')); // false 

     jQuery('#someOtherId').addClass('error'); 

     console.log('#someId has error: ' + jQuery('#someId').hasClass('error')); // false 
     console.log('#someOtherId has error: ' + jQuery('#someOtherId').hasClass('error')); // true 
    }); 
    </script> 
    </head> 
    <body> 
    <div id="someId">foo</div> 
    <div id="someOtherId">bar</div> 
    </body> 
</html> 
+0

感謝您的快速響應...... – Joy 2010-12-23 08:46:02

相關問題