2017-02-10 135 views
0

HTMLimg onClick「」不起作用?

<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
(function(){ 
    window.disappear = function() { 
    console.log("dissapear"); 
    document.getElementsByTagName("img")[0].style = "display: none;"; 
    }; 
}()); 

你已經差不多了。正如其他人所說,document.getElementsByTagName返回一個數組;你必須指定你想要的元素[0]

我改變你的消失函數綁在窗口,我是不是能夠通過我的CodePen訪問它。關閉(function(){}())可以讓代碼在dom準備就緒時運行。

CodePen

+1

不,您的代碼也不會工作,因爲OP代碼不會。 – Pointy

+1

@Pointy固定:) – 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不同的方式是在另一個答案。 – Barmar

+0

你必須對你自己的一組匹配元素進行迭代。 – Pointy