jQuery:除了孩子外,设置整个元素的不透明度?

时间:2011-08-10 21:04:53

标签: jquery html css select opacity

我不知道这是否可能......

我的标题中有一个div#branding。标题内部有多个其他元素。 我希望header的所有孩子的不透明度为0.3但不是#branding div。

我怎样才能做到这一点?

我尝试使用以下部分,但这不起作用。

$('header div:not(#branding)').css('opacity', '0.3');

感谢您的帮助。

4 个答案:

答案 0 :(得分:3)

试试这个:

$('div#header').children().css('opacity', '0.3');

它选择div#header的所有子节点,并仅对它们应用不透明度。 (http://api.jquery.com/children/

演示:http://jsfiddle.net/MNUsL/1/

答案 1 :(得分:1)

它应该,尝试:

$('header div').not('#branding').css('opacity', '0.3');

修改

至于继承不透明度 - 儿童不能比父母更不透明,但可能更多

http://jsfiddle.net/Jacek_FH/MNUsL/12/

答案 2 :(得分:0)

根本不可能。您必须具有所需的每个子元素的不透明度。试试这个

$('headerSelector').children(":not(#branding)").css('opacity', '0.3');

答案 3 :(得分:0)

每当我遇到这个问题时,我只是尽可能简单地为我做,也许不是最优雅的解决方案,但我只是创建了一个包装器,即:

<div id="headerWrapper">
   <div id="header">...</div>
   <div id="branding"></div>
</div>

然后,这只是一个用css“position:relative”和“z-index”属性来定位品牌的问题。它将不再是标题的子节点,但它在包装器内部,所以如果你想听特定的事件,它仍然是可能的。

我希望这会有所帮助。