2014-05-19 59 views
-1

我不知道爲什麼這不起作用...我會發布什麼不工作,然後我會發布它下面的工作:addEventListener不工作

這didn 「T工作:

<!DOCTYPE html> 
<html> 
<head> 
<script> 
document.getElementById('theButton').addEventListener("click", function() { 
document.getElementById('myAnchor').innerHTML="<label for=\"Name\">What is your name?</label><input type=\"text\" id=\"Name\"/>"; 
document.getElementById('myAnchor').href="http://www.w3schools.com"; 
document.getElementById('myAnchor').target="_blank"; 
}); 
</script> 
</head> 
<body> 

<a id="myAnchor" href="http://www.microsoft.com">Microsoft</a> 
<input type="button" id="theButton" value="Change link"> 

</body> 
</html> 

該做的工作:

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function changeLink() 
{ 
document.getElementById('myAnchor').innerHTML="<label for=\"Name\">What is your name?</label><input type=\"text\" id=\"Name\"/>"; 
document.getElementById('myAnchor').href="http://www.w3schools.com"; 
document.getElementById('myAnchor').target="_blank"; 
} 
</script> 
</head> 
<body> 

<a id="myAnchor" href="http://www.microsoft.com">Microsoft</a> 
<input type="button" onclick="changeLink()" value="Change link"> 

</body> 
</html> 

我在我的小調整的innerHTML嘗試這樣做: http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_elmnt_innerhtml

+0

只需將您的腳本向下跌破''但收盤''標記上方。 –

+0

請勿使用[W3Schools](http://www.w3fools.com/),[* Mozilla開發人員網絡*(MDN)](https://developer.mozilla.org/en/docs/Web/JavaScript )是一個更好的資源。 – RobG

回答

2

主要問題是腳本在myAncor對象之前加載。因此你不能用document.getElementById函數來獲取它。加載頁面DOM對象後,您應該調用此函數。

0

如果您在head中追加腳本,在html之前,當您嘗試添加事件偵聽器時,html不存在。所以,你需要將它包裝在一個onload事件:

window.onload=function(){ 
//your code 
}