は、
template.find('.userPhoto img').error(function() {
$(this)[0].src = '/images/default.png';
}).attr('src', image);
私は、個々の要素を参照するために$(この)を期待していたが、そうではありません。代わりに、ラップされたセットを参照しています...なぜそれを見つけることができますか?
ありがとうございます!
は、
template.find('.userPhoto img').error(function() {
$(this)[0].src = '/images/default.png';
}).attr('src', image);
私は、個々の要素を参照するために$(この)を期待していたが、そうではありません。代わりに、ラップされたセットを参照しています...なぜそれを見つけることができますか?
ありがとうございます!
を持つことができるからだと思いますか?
誰かがそれ以上良く分からなかったからです。これに関連して
あなたは、元のDOM要素をしたい場合は、ちょうどあなたがその要素のjQueryのメソッドを呼び出すしたい場合は、$(this)
を使用し、一方this
を使用しています。あなたがやっているすべてのDOM要素のプロパティを設定されているので、あなたが元を使用する必要があります
:
template.find('.userPhoto img').error(function() {
this.src = '/images/default.png';
}).attr('src', image);
私はあなたが選択する方法を適用し、$(this)
ではなく、個々の要素のラップセットを参照しているのはなぜ統一API
$("a").each(function(){
$(this).each(...).click(...);
});
$("a").click(...);
それは予想される動作ですが、jQueryのはどのように動作するかです。
$()
は、DOM要素のセットであるjQueryオブジェクト(配列になりすます)に変換します。
答えでは、$()
を使用する必要はありません。
this
は、あなたが望む要素である、ので、あなただけ行うことができます。
template.find('.userPhoto img').error(function() {
this.src = '/images/default.png';
}).attr('src', image);
それともあなたがこれを行うことができます:
template.find('.userPhoto img').error(function() {
$(this).attr('src', '/images/default.png';);
}).attr('src', image);
$(this).attr('src'
は、あなたのケース内のすべての要素(の属性を変更します、1つ)。
これは、$(...)が意味するものです。 – asawyer
FWIW、 '$(this)[0] === this' – Alnitak
あなたはそれがセットであることをどのように知っていますか? '' [0] 'は、最初の要素ではなく、jQueryオブジェクトのDOM要素を扱います。 –