2012-01-20 10 views
2

は、次の簡単なHTMLを考えて期待してい道を働いていません。jQueryのセレクタは、私は

私がしたいことは、タグとその内部の画像を非表示にすることです。私はこれを行う場合は、それが動作します:

$('a').hide(); 

しかし、私が言ったように、そこにページ上のリンクの多くがあるので、私は非常に特異的であることにしたいです。基本的には、<div>内のリンクのみを「navcontainer」のクラスで欲しいです。だから私はWeb上で見ているものから、次の2つのフォーマットのうちの1つでなければなりません。 2番目は私にとって完璧に見えます。しかしどちらも私のために働いていません。

$('div.navcontainer a').hide(); 
$('div.navcontainer > a').hide(); 

私は何か愚かなものを紛失しているに違いありません。誰かが私を手がかりにしてくれますか?あなたが$('div#navcontainer')を必要とするクラスとIDセレクタ

$('#navcontainer a').hide(); 
$('#navcontainer > a').hide(); 

答えて

4

、あなたのコードではなく、IDよりnavcontainerクラスを探しています。

0

あなたのhtmlに基づいて、あなたはIDセレクタを使用する必要がある -

$('div#navcontainer > a').hide(); 
2

セレクタのドットプレフィックスはクラスのためですが、あなたはハッシュを使う必要がありますので、あなたが実際にIDを持っています接頭辞ではなく、例えば:

$('#navcontainer > a').hide(); 

これは、セレクタにdivプレフィックスを入れてはるかに良いではない - それはそれなしではるかに高速になります。

純粋なIDベースのセレクタを使用する場合、jQueryはネイティブのdocument.getElementById()呼び出しを使用できます。実際には、これはおそらく最も最適です:

$('#navcontainer').children('a').hide(); 
2
$('div#navcontainer a').hide(); 

.あなたはIDの#をしたい、クラスのためです。

IDは一意である必要があるため、divのプレフィックスは必要ありません。あなたはクラスnavcontainerとdiv要素を持っている場合は、ID navcontainerとdiv要素を持っている場合

$('#navcontainer a').hide(); 
+0

ただし、DIVを指定するのは悪いことではありません。 jQueryでは、特に他の人があなたのコードを読んでいる場合には、より具体的になることは決してありません。 –

+1

@KyleMaceyはトローリングかどうか分かりません。 – Esailija

+0

@KyleMaceyはい、それはより具体的であることを傷つけます、それはコードを遅くします。 – Alnitak

0
$('div#navcontainer a').hide(); 
$('div#navcontainer > a').hide(); 
+0

コードを理解しやすくするための簡単な説明を追加することを検討してください。このコメントのすぐ上にある「編集」リンクをクリックしてください。 –

1

$(".navcontainer a").hide() 

を使用しています。

$("#navcontainer a").hide()