2012-02-05 92 views
3

我需要改變給定選擇器的所有子元素(全深度)的顏色。jQuery使用通配符*改變所有子元素的顏色

運行時我不知道兒童的確切的HTML標記,只是包裝元素類。

我曾嘗試以下,但沒有效果

$('.cat_title *').each(function() { $(this).css('color', color); }); 
$('.cat_title *').css('color', color+'!important'); 
$('.cat_title *').css('color', color); 

在正確的方向的任何指針將不勝感激。

回答

0
$('.cat_title').children().css('color', '#000000 !important'); 

應該這樣做。

雖然,我討厭使用!重要的財產。

+0

na ...不工作,:(: – GeekKnight 2012-02-05 07:49:40

+0

那麼這取決於HTML的真實性,上面的代碼對於一個孩子來說是很有用的,如果你有孩子在chidlren裏面,它會變得更加困難。http://jsfiddle.net/ NotInUse/guNYT/3 / – Scott 2012-02-05 08:03:38

2

代碼的第一個和第三個版本的工作原理是它們將style屬性添加到元素,但是這不會覆蓋在級聯中具有較高優先級的樣式表中設置的設置。

第二個版本是不行的,因爲jQuery的不支持加入!important符,見How to apply !important using .css()?

您可以考慮使用代碼,增加了一個類的元素,即在的風格使用的類頁面,如果需要,使用!important

如果文本沒有包含在內部元素中(並且在問題描述中沒有要求這樣的效果),那麼這些方法都不會影響元素內部文本的顏色。