2016-04-08 84 views
-2

如果我之前放置腳本內容,爲什麼代碼不工作?但是當我在視頻標籤後添加腳本時,它工作正常。解釋這個PLZ爲什麼document.getElementById()不以這種方式工作?

var vid = document.getElementById("myVideo"); 

function play(){ 
    vid.play(); 
} 

function pause(){ 
    vid.pause(); 
} 


</script> 




<button onclick="play()">Play</button> 
<button onclick="pause()">Pause</button> 

<video id="myVideo"> 
    <source src="john.mp4" type="video/mp4"> 
</video> 





</html> 
+2

因爲如果使用代碼之前元素被定義它無法操作。如果使用腳本尚未存在的元素 – llamerr

+0

視頻標記之前的標記它沒有找到您在document.getElementById(「myVideo」)中使用的元素; – arsho

+0

''和''標籤在哪裏? –

回答

1

劇本是根據其位置進行評估。您正嘗試訪問尚未呈現的HTML。

您可以放在之前,但使用document ready事件。

0

Cuz瀏覽器逐行解釋代碼。如果你想找到一個html標籤,但它不存在,它顯然不會找到它,如果你把視頻標籤放在腳本標籤後,你的代碼就是這種情況。如果你真的想把你的腳本放在html標籤之前,你可以強制javascript只在完整的dom被加載後運行。 贊同:

window.onload = function() { 
    //your script here 
}; 

或與jQuery文檔準備功能。 或用把你的腳本到外部文件並把它與延遲HTML腳本屬性像

<script src="yourScript.js" defer></script> 
+0

好的。得到它了。謝謝你兄弟 – Saim

相關問題