2017-02-10 2 views
0

HTMLimg onClick ""は機能しません。キャッチされない例外TypeError::私がクリックしたとき:(</p> <p>コンソールが言う

<img src="http://i.pr3cast.pw/02.09.10z.png" onClick="disappear()"> 

JS

function disappear() { 
document.getElementsByTagName("img").style.display = "none"; 
} 

https://jsfiddle.net/1y42d7zm/

何もイメージに起こりませんプロパティ '表示' の設定はできません。定義されていません

ありがとう

+1

'.getElementsByTagName()は'関数は**要素の**リストを返し、唯一のマッチングがありますでも要素をページに追加します。 – Pointy

+0

o.oこれから何を使うべきですか? –

+0

これを使うことができますが、リストから実際のターゲットイメージを抽出する必要があります。あなたのやり方はHTMLに依存します。 – Pointy

答えて

1

あなたはほとんどそれを持っていました。他の人が触れたように、document.getElementsByTagNameは配列を返します。 [0]の要素を指定する必要があります。

コードペーンでアクセスできなかったため、消滅機能をウィンドウに結びつけるように変更しました。閉鎖(function(){}())は、domが準備完了したときにコードが実行されるようにします。

CodePen

+1

いいえ、あなたのコードは、OPコードとまったく同じ理由で、どちらも動作しません。 – Pointy

+1

@Pointy Fixed :) – matt

+0

セミコロンを省略しないでください。 – Barmar

1

HTML:

<img id="to-disappear" src="http://i.pr3cast.pw/02.09.10z.png"   onClick="disappear()"> 

JS:

function disappear() { 
    document.getElementById("to-disappear").style.display = "none"; 
} 
+0

IDを使用する必要がありますか?私はそれを避けようとしていましたが、すべての要素をアニメーション化したい場合は、すべてのimg要素にタグを付ける必要はありません。別の方法が必要であると確信しています。 –

+0

@PrecastDragonもう1つの答えは別の方法です。 – Barmar

+0

あなたは一致した要素のセットをあなた自身で繰り返す必要があります。 – Pointy

関連する問題