問題描述
最近在做項目時,在HTML中編寫了一個超鏈接,超鏈接調用Js中的clear()方法,但是無論怎麼嘗試發現clear()方法都不起作用,這是怎麼回事呢?HTML中的代碼如下:
<a href="javascript:void(0)" onclick="clear()">清除</a>
JS中的代碼如下:
function clear(){
alert("清除成功”);
}
原因分析
這是因爲HTML中的document對象中也有一個clear()方法,即document.clear(),是清除指定文檔的內容。因此如果直接寫οnclick="clear()"這樣會默認調用document.clear()方法,而不是在js中編寫的clear()方法,自然無法達到clear()方法中的效果。
解決方案
方案1
在方法名前加上window進行限定,就會調用js中編寫的clear()方法了,代碼如下:
<a href="javascript:void(0)" onclick="window.clear()">清除</a>
方案2
簡單粗暴,換一個方法名即可。既然知道clear()方法和document方法中的名稱衝突,那換一個方法名,比如selfClear()等,就不會出現這個問題了。