使用Jquery淡化整个div除了一个跨度

Ore*_*iya 2 javascript jquery

我目前在以下结构中有HTML:

<div class="mediaItem">
    <a class="articleLink" target="_blank" href="http://foo.com"></a>
    <span class="articleSummary">Summary</span>
    <span class="sourceDate">Source</span>
    <span class="remove"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

这个HTML重复了很多次.

我想在鼠标悬停时淡化当前"mediaItem"div的全部内容,除了"删除"范围,需要保持不透明度为1.

这是我到目前为止的Jquery代码:

$(".mediaItem").live({
    mouseenter:
         function(){
             $(this).fadeTo('fast', 0.5);
         },
    mouseleave:
         function(){
             $(this).fadeTo('fast', 1.0);
         }
    });
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多组合选择整个div除了"删除"范围,但我似乎无法让它只与当前的"mediaItem"一起使用.如何淡化目前悬停在"mediaItem"中的所有内容而不影响"删除"范围?

Geo*_*ins 13

$(this).children(":not('.remove')").fadeTo('fast', 0.5);
Run Code Online (Sandbox Code Playgroud)

  • (但并不意味着我的应该被投票,我的技术上仍然可以回答这个问题) (4认同)
  • 这样更优雅:) (2认同)

Bra*_*tie 5

如何使用不同的选择器?

$('.mediaItem > *:not(.remove)').fade*()
Run Code Online (Sandbox Code Playgroud)

选择所有孩子,但免除删除孩子.