jQuery nearest()或prevAll()不起作用

时间:2012-05-29 22:14:36

标签: javascript jquery

当用户将鼠标悬停在类"thumb"的链接上时,与类"title"最近的链接应该应用了类"media-link-hover"。怎么办呢?

我尝试了closest(),但这似乎没有任何效果:

$('a.thumb').hover(function() {
    $(this)
        .prevAll('.block')
        .find('a.title')
        .addClass('media-link-hover');
}, function() {
    $(this)
        .prevAll('.block')
        .find('a.title')
        .removeClass('media-link-hover');
});

HTML:

<article class="block">
    <div class="inner-left">
        <a class="thumb" title="" href="">
            <img width="198" height="111" alt="" src="" />
            <span class="media-overlay">video</span>
        </a>
    </div>
    <div class="inner-right">
        <a class="title" title="" href="">Hello</a>
        <div class="description">
            <p>Hi there</p>
            <a class="teaser" href="">Hola</a>
        </div>
        <div class="media-stats">
            <span class="finder">Found by <strong>Me</strong> 1 month ago</span>
        </div>
    </div>
</article>

2 个答案:

答案 0 :(得分:4)

适用于closest('.block')

http://jsfiddle.net/yBwSN/

答案 1 :(得分:1)

尝试使用parents(),您也可以使用toggleClass()来减少代码 演示 http://jsfiddle.net/elclanrs/Ce8fu/

$('a.thumb').hover(function() {
    $(this)
        .parents('.block')
        .find('a.title')
        .toggleClass('media-link-hover');
});