jQuery检查是否设置了.css属性

Tat*_*low 8 html javascript css jquery

我的代码看起来像这样

if($(element).css("background-color") == null){
  $(element).css("background-color", "white");
}
Run Code Online (Sandbox Code Playgroud)

我想确保如果style.css文件中没有设置颜色,我会添加它.但是那段代码不起作用.它总是回归rgba(0,0,0,0).我正在使用的浏览器是Chrome.

有没有其他方法来检查颜色是否未设置?

vol*_*ron 6

CSS:

.background-set { background-color: white; }
Run Code Online (Sandbox Code Playgroud)

jQuery的:

var $el = $(element);

if( !$el.hasClass('background-set') ){
   $el.addClass('background-set');
}
Run Code Online (Sandbox Code Playgroud)

虽然我不确定你为什么需要检查.您可以在没有条件的情况下添加它.


或者:

if ( $el.prop('style').backgroundColor == '' ) {
   ... 
}
Run Code Online (Sandbox Code Playgroud)

要么

if ( $el.get(0).style.backgroundColor == '' ) {
   ...
}
Run Code Online (Sandbox Code Playgroud)


Lim*_*ale 1

elclanrs 建议的方法是处理此问题的最优雅的方法,并且应该是首选方法。然而,为了满足好奇心,您可以使用jQuery Attribute Contains Selector获得相同的结果。

$("div[style*='background-color']").text("I have a background color!");
Run Code Online (Sandbox Code Playgroud)

jsFiddle 演示