我有许多CSS属性和类,它们根据元素在HTML中的显示位置进行应用。
但是有些元素不等于这些值中的任何一个,所以我希望能够检查DIV中哪些元素没有通过CSS设置背景然后应用背景。
类似的东西:
$('.divclass:has('background')').addClass('IneedaBG.gif');
或者
$('.divclass:has(not:class1,class2,class2)').addClass('IneedaBG.gif');
答案 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
元素”