2012-02-13 15 views
0

リンク内の画像を選択しようとしています。Jqueryはリンク内の画像を選択できません

のjQuery:

$('#selskaber img').hover(function() { 
    $(this).next().css({'border' : '1px solid #0167B0 !important'}); 
    }, 
    function() { 
    $(this).next().css({'border' : '1px solid #CCCCCC !important'}); 
    } 
); 

HTML:

<div id="selskaber"> 
    <a target="_blank" href="#"> 
    <img style="border:none;" src="/images.pmg" alt="Telenor"> 
    </a> 
</div> 

UPDATE:私は次を削除した

()。まだボーダーは追加されません。

マイCSS:

画像はので、次はあなたに何かを与えることはありません、任意の兄弟を持っていない
#wrap #selskaber a {border:none;margin-left:10px;display:inline-block !important; 
    height: 41px; 
    margin-top: 5px; 
    width: 150px;} 
+1

おそらく2つの '.next()'部分を削除すると役立ちます。 –

+0

'!important'を取り除く。 –

答えて

2

あなたは、IMGを選択しようとしている場合は、単にnext()

$('#selskaber img').hover(function() { 
    $(this).css({'border' : '1px solid #0167B0 !important'}); 
     }, 
     function() { 
     $(this).css({'border' : '1px solid #CCCCCC !important'}); 
     } 
    ); 

nextを削除:

説明:マッチした要素の集合の各要素の直後の兄弟を取得します。セレクタが提供されている場合は、そのセレクタに一致する場合にのみ次の兄弟を取得します。

+0

!importantを削除しましたか? a:hoverが動作しなかったか、またはimg:CSSを使用しているため。 –

+0

@Railsbeginner。それがあなたを助けてくれてうれしいです。 – gdoron

1

セレクタ'#selskaber img'はすでに画像を提供しています。あなたが画像$(this)を必要とするなら、ホバーコールバックの内部で十分です。 nextを呼び出す必要:

$('#selskaber img').hover(function() { 
    $(this).css({'border' : '1px solid #0167B0 !important'}); 
    }, 
    function() { 
    $(this).css({'border' : '1px solid #CCCCCC !important'}); 
    } 
); 
1

next()を削除し、あなたはすでにimgタグを選択していませんか

#selskaber a img{ 
    border:1px solid #ccc; 
} 

#selkskaber a:hover img{ 
    border: 1px solid #0167B0; 
} 

は全く同じことを行い、JSは必要なくIE6まで互換性があります。

9

あの...なぜあなたはここにJavascriptを使用している:?

$('#selskaber img').hover(function() { 
    $(this).css({'border' : '1px solid #0167B0 !important'}); 
}, 
function() { 
    $(this).css({'border' : '1px solid #CCCCCC !important'}); 
}); 
+0

人に思い出させるために+1 CSSはスタイリングのためのものです –

+0

私はこれを複数回アップヴォートできますか? –

+2

これは完全に有効ですが、彼はそれを行うjQueryの方法を求めていました。しかし私はあまりにも同意する:スタイルのCSS。 – Tim

1

$(this)は、<img>です。 $(this).next()は何もないので、next()への呼び出しを削除してください。

1

img要素の後にノードがありません。 $(this)コンテキストは、ホバリングしているimg要素に関連しています。 next()を削除してみてください。

$('#selskaber img').hover(function() { 
    $(this).css({'border' : '1px solid #0167B0 !important'}); 
    }, 
    function() { 
     $(this).css({'border' : '1px solid #CCCCCC !important'}); 
    } 
); 
関連する問題