2012-02-05 89 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

如果文本没有包含在内部元素中(并且在问题描述中没有要求这样的效果),那么这些方法都不会影响元素内部文本的颜色。