检查CSS中的背景

时间:2009-09-04 15:05:00

标签: jquery css

我有许多CSS属性和类,它们根据元素在HTML中的显示位置进行应用。

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

类似的东西:

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

或者

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

3 个答案:

答案 0 :(得分:1)

尝试过滤掉没有背景设置的元素(在样式表或内联中,jquery捕获两者),然后将您的类添加到这些元素中:

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

答案 1 :(得分:1)

我不确定类名是否有点(IneedaBG.gif)。想象一下,如果你试图用选择器选择它:

$(".IneedaBG.gif")

我很确定这不起作用。您是否可能需要具有属性中定义的图像的CSS类?

此外,您可以稍微加快选择器的性能,因为直接引用.divclass类将扫描整个DOM:

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

还尝试使用“for the selectors,而不是使用多个'

你能拥有DIV的身份证吗?那会更好!

答案 2 :(得分:0)

试试这个:

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

您的代码

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

无效:只看颜色突出显示。内部引号必须为""``:has也适用于包含元素的元素:a:has(b)表示“选择包含至少一个a元素的所有b元素”