0

我有以下代码:(这里有一个小提琴

<img class="changeable" src="http://placehold.it/100x120&text=anniversary">
    <ul class="rollover_list">
        <li><a href="#" rel="http://placehold.it/100x120&text=anniversary"><span class="orange">> </span>Anniversary</a></li>
        <li><a href="#" rel="http://placehold.it/100x120&text=birthday"><span class="orange">> </span>Birthday</a></li>
        <li><a href="#" rel="http://placehold.it/100x120&text=christmas"><span class="orange">> </span>Christmas</a></li>
        <li><a href="#" rel="http://placehold.it/100x120&text=wedding"><span class="orange">> </span>Wedding</a></li>
    </ul>

我正在尝试根据锚点的 rel 值更改图像的 src 属性。

我正在尝试这个 jquery -

$("ul.rollover_list li a").hover(function() {
            var $link = $(this).attr('rel');
            var $target = $(this).closest('img.changeable');
            $($target).attr('src', $link);
        });

因为我需要在一个页面上多次使用它。

我是否认为 .closest() 将通过遍历 DOM 来定位最近的匹配元素?

不知道我错过了什么,但它并不快乐。

4

2 回答 2

5

那条线显示为...

$($target).attr('src', $link);

应该是……

$target.attr('src', $link);
于 2011-10-25T16:14:06.150 回答
4

你的 jQuery 有 2 个问题:

  1. jQuery 的closest()方法只适用于树,换句话说:它只在想要的结果是当前元素的父级时才有效。
  2. $($target). $target已经是一个元素,你不能使用一个元素作为选择器来选择一个元素,因为你需要一个方法,find但是,这不是你想要做的。

http://jsfiddle.net/U7SNz/2/

于 2011-10-25T16:19:54.143 回答