関数$.(this)の後に再宣言することはできませんか?$.click()これらのどれも機能していないように見えるため:
$(this) = $(this).find('span');
var $(this) = $(this).find('span');
が正当な識別子var fooである場合にのみ宣言できます。foo
$(this)引数で指定された関数を呼び出した結果であるため、宣言では無効です。$this
また、上書きしないでくださいthis。将来、頭を悩ませる可能性があります。
のjQueryバージョンを格納するためのローカル変数が必要な場合this、一般的な規則は次のとおりです。
var $this = $(this);
var $span = $this.find('span');
ここで、(完全に合法ですが、時々眉をひそめる)$プレフィックスを使用すると、変数がjQueryオブジェクトであり、プレーンなDOM要素ではないことを思い出すことができます。
この規則により、次のことを行うことの無駄な(しかし一般的な)エラーを見つけることもできます。
var jqobj = $(myobj)
はすでにjQueryオブジェクトですmyobj。
式$(this)は変数宣言ではなく、式です。何かを再宣言したい場合は、それを変数に格納する必要があります
var saved = $(this);
saved = $(this).find('span');
最終バージョンが機能する理由は、実際の識別子に割り当てているためです。
$('some').on('click', function() {
var refrence = $(this);
var span = refrence.find('span')
// to override the $this you can use
refrence = refrence.find('span');
});