jquery - 在翻转时更改IMG src

时间:2011-10-25 16:10:46

标签: jquery image attr closest

我有以下代码:(a fiddle is here

<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找到最近的匹配元素吗?

不知道我错过了什么,但不开心。

2 个答案:

答案 0 :(得分:5)

该行显示为......

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

应该是......

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

答案 1 :(得分:4)

你的jQuery中有2个问题:

  1. jQuery的closest()方法仅适用于树,换句话说:只有当想要的结果是当前元素的父级时才会起作用。
  2. $($target)$target已经是一个元素,你不能使用元素作为选择器选择一个元素,因为你需要一个像find这样的方法,但是,这不是你想要做的。
  3. http://jsfiddle.net/U7SNz/2/