2009-09-04 88 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