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 に答える