2017-12-25 25 views
-2

this.id.srcのsrcがデバッガで未定義なのはなぜですか?なぜこれがうまくいかないのか分かりません。私は前にこの作業をしてきましたが、特定のID(this.idではない)を持っていました。this.id.srcのsrcが未定義(デバッガの場合)

document.getElementById("a1").addEventListener("click", myFunction); 
 

 
function myFunction (id) { 
 
\t console.log(this.id); // works 
 
\t this.id.src="images/red.jpg"; 
 
}
<div> 
 
<img id="a1" src="images/black.jpg"> 
 
</div>

+4

'this.id.src'は「SRC」というプロパティが値のオブジェクトの上に置か*意味しますオブジェクト "this" *の "id"というプロパティの値。 DOMノードの "id"属性の値は常に文字列であるため、 "src"プロパティは決して*決して*持ちません。あなたはたぶん 'this.src'だけを望むでしょう。 – Pointy

+1

コードにIIFEはありません。 – Quentin

答えて

0

idプロパティにはsrcプロパティはありません。あなたはそれを直接使用する必要がありますthis.src。そして、関数に渡されたパラメータは、イベントではないIDです。

document.getElementById("a1").addEventListener("click", myFunction); 
 

 
function myFunction(e) { 
 
    this.src = "http://via.placeholder.com/150x150"; 
 
}
<div> 
 
    <img id="a1" src="http://via.placeholder.com/100x100"> 
 
</div>

関連する問題