2012-05-03 13 views
8

thisをjQuery DOMオブジェクトとして保存して、それを選択するには、どの方法を使用しますか?

var element = $(this) 

そして、私はその後、大きなセレクタにelementを連結したい場合は、その後

$(element) 

それとも単に

var element = this 

を選択するためにも、このです:

$(element + " .class") 

t道?

答えて

14
var element = $(this) 

は、その後、あなたは$(this)の代わりにelementを使用することができます。あなたはelement$()に挿入する必要はありません。例えば

:代わりに$(this).remove()

+2

'$(element +" .class " ) '上記の答えで' element.hasClass( "class") ' – PapaSmurf

+5

を使用することをお勧めします。変数を' '' $ '' 'で指定すると、すぐにそれがjQueryオブジェクトであることがわかります。 –

9

$this = $(this)は、通常、人が行うものです。ドル記号は変数名の有効な文字なので、変数がjQueryオブジェクトであることを通知します。

これで、$thisを任意のjQuery要素と同じように使用できます。例えば、$this.css('border', 'none')

+2

特に、変数に格納する理由は、別のコンテキスト(セカンダリクリックイベント、AJAX結果)で変数を格納する理由がある場合に注意してください。ここで '$(this) – yoozer8

+0

@jim、true。 AJAXの成功関数などの中で$ thisを参照したいときに混乱することがあります。 – CambridgeMike

+4

+1、私はこれを使うときに '$ that'を使うほうが好きですが、私はいつも別の' this'を使っている別のスコープでそれを必要とします。 – Louis

2

var element = $(this)element.remove()あなたがmyClassクラスを持つすべての項目を選択したい場合は、あなたがすべき

2

を選択するためのelementその後、

を格納する:

var $this = $(this); 
var myClassElements = $(".myClass", $this); 
+0

これはまさに私がやっていることであり、他の回答と比べて率直で優れています。 –

+0

@OlliMは 'myClassElements'が' myClass'の中で 'this'を選択しませんか? – ilyo

+0

特に変数に格納する理由は、別のコンテキスト(セカンダリクリックイベント、AJAX結果)で変数を格納する理由は、$(this)が異なるものを参照するためです。 – yoozer8

1

正しい方法は次のとおりです。

var element= this.html(); 
$(element).find(div) /* from modefy div you can change it with any other selector */ 
$(element).attr({"class":"myClass","other atrribut":"it's value"}); 

私は役に立つと思います。

関連する問題