2013-07-19 1 views
42

どのようにしてそのオブジェクトからクラスを選択できますかthisJqueryはこのクラスを選択します

$(".class").click(function(){ 
     $("this .subclass").css("visibility","visible"); 
}) 

$(this+".subclass")を選択します。どうすればJqueryでこれを行うことができますか?

答えて

83

使用$(this).find()、またはjQueryのcontext with selectorを使用して、コンテキストでこれを通過します。

使用$(この).find()コンテキスト、$(selector, context)で使用

$(".subclass").click(function(){ 
    $(this).find(".subclass").css("visibility","visible"); 
}); 

this、それは内部的にとても優れて最初の場所で見つける使用するように、機能を見つける呼び出します。

$(".subclass", this).click(function(){ 
    $(this).find(".subclass").css("visibility","visible"); 
}); 
+1

'find()'が2番目のメソッドで内部的に呼び出されている場合、なぜまだ手動で呼び出すのですか? – shaneparsons

11

使用find()

$(this).find(".subclass").css("visibility","visible"); 
+0

+1最初の正解です。 – zurfyx

20

たぶんのようなもの:あなたが探しているものを $(".subclass", this);

+0

これは素晴らしい選択肢です。コンテキストを使用する+1 – iConnor

+0

@Connorこれは代案ですがそれほど大きくありません。とにかく+1 too too –

+0

@roastedあなたの意見に感謝します – iConnor

3

はこれです:

$(".subclass", this).css("visibility","visible"); 

パフォーマンスのトリックを使用する必要がある場合は、クラス$(".subclass", this)

+0

SVGをアニメーション化しようとしたときに、これが本当に助けになりました。 – Xander

1

thisを追加します。以下:

$(".yourclass", this); 

find()メソッドはセレクタ内で毎回検索を行います。まあを見つける使用して

1

は、ここに最適なオプションです

ただ単にこの

$(".class").click(function(){ 
     $("this").find('.subclass').css("visibility","visible"); 
}) 

のように使用し、多くのクラスが同じ名前のクラスに存在する場合、その常に良いのクラス名を与えることこのような親クラス

$(".parent .class").click(function(){ 
      $("this").find('.subclass').css("visibility","visible"); 
    }) 
関連する問題