document.getElementById()偶爾返回null


1、問題現象

  在Vue中通過document的getElementById()方法返回元素對象時,有時候遇到為null值。

2、問題分析

  在代碼中確實為目的元素指定了ID,那為何還會出現對象為null的現象呢?首先,對該ID元素的屬性、樣式進行分析,它是通過v-if指令來控制是否顯示的,它是動態加載元素組件的,也就是說當v-if指令為false時,該ID元素是不會出現在Element樹中,此時調用getElementById()方法來獲取該ID元素,那么得到的值肯定會為null值;只有當v-if指令為true時才會動態異步加載該元素,如果還沒有等到該元素加載完成,就立即調用getElementById()方法來獲取該元素的話,那么得到的值也會為null值,只有當該元素完全加載后,再調用getElementById()方法,就不會得到null值了。

3、問題處理

  要是在現實中的確需要用到這樣的一個場景,當某個元素立即顯示,同時通過ID來獲取該元素時,那么此時就不能使用v-if指令了,我們可以使用v-show指令。也就是說,在代碼中用v-show指令替換掉v-if指令,就不會出現getElementById()方法返回null值的問題了。其實,v-show指令是一種懶加載的處理機制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM