2009-09-04 83 views
1

我有一些CSS属性和类,根据元素出现在HTML中的位置应用。在CSS中检查背景

但是有些元素并不等于这些值中的任何一个,所以我希望能够检查DIV中的哪些元素没有通过CSS设置的背景,然后应用背景。

喜欢的东西:

$('.divclass:has('background')').addClass('IneedaBG.gif'); 

或者

$('.divclass:has(not:class1,class2,class2)').addClass('IneedaBG.gif'); 

回答

1

我不知道类名可以有一个点(IneedaBG.gif)。试想一下,如果你试图用选择器来选择这个:

$(".IneedaBG.gif") 

我敢肯定,这是行不通的。你可能想要一个CSS属性中定义的图像吗?

此外,还可以加快你的选择表现了一下,直接参考.divclass类将扫描整个DOM:

$("div.divclass:has('background')").addClass("IneedaBG"); 

也尝试使用“的选择,而不是有多个”

你可以有DIV的ID吗?那会更好!

1

尝试过滤掉那些没有背景元素集合(无论是在样式或内联,jQuery的捕捉两者),然后加上你的类到以下元素:

$('.divclass') 
    .filter(function() { return $(this).css('background-image') }) 
    .addClass('IneedaBG') 
0

试试这个:

$('.divclass').each(function() 
{ 
    if($(this).css('background') != '') $(this).addClass('Bgclass'); 
}); 

您的代码

$('.divclass:has('background')').addClass('IneedaBG.gif'); 

将不起作用:只看颜色标示。内部报价需要为""``。此外:has是方含元素的元素:a:has(b)意味着“选择含有至少一种b元素中的所有元素a