第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我們不在JavaScript中使用元素ID作為標識符?

為什么我們不在JavaScript中使用元素ID作為標識符?

慕運維8079593 2019-09-12 10:10:35
為什么我們不在JavaScript中使用元素ID作為標識符?我開始使用的所有瀏覽器都允許id="myDiv"通過簡單地編寫來訪問元素:myDiv見這里:http://jsfiddle.net/L91q54Lt/無論如何,這種方法似乎記錄很少,事實上,我遇到的來源甚至沒有提及,而是假設有人會使用document.getElementById("myDiv")或者可能document.querySelector("#myDiv")即使在事先知道其ID(即不在運行時計算)時也要訪問DOM元素。我可以說,后者的方法具有保持代碼安全的優(yōu)勢,如果有人無意中嘗試myDiv在更廣泛的范圍內重新定義(雖然不是這么好的想法......),用一些不同的值覆蓋它并繼續(xù)而沒有注意到沖突。但其他那個呢?除了代碼設計之外,使用上面的簡短形式是否有任何問題,或者我在這里缺少什么?
查看完整描述

3 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

好問題。正如愛因斯坦可能沒有說的那樣,事情應盡可能簡單,并不簡單。

如果有人無意中嘗試在更廣泛的范圍內重新定義myDiv(雖然不是這么好的想法......),后一種方法的優(yōu)點是保持代碼安全,用一些不同的值覆蓋它并繼續(xù)而不注意沖突

這就是為什么這是一個壞主意的主要原因,而且這已經足夠了。全局變量不能安全依賴。它們可以隨時被任何最終在頁面上運行的腳本覆蓋。

除此之外,只需輸入myDiv就不是“簡短形式” document.getElementById()。它是對全局變量的引用。如果元素不存在,document.getElementById()將很樂意返回null,而嘗試訪問不存在的全局變量將引發(fā)引用錯誤,因此您需要將對try / catch塊中的全局引用包裝起來是安全的。

這就是為什么jQuery如此受歡迎的一個原因:如果你這樣做$("#myDiv").remove(),并且沒有id的元素,myDiv就不會拋出任何錯誤 - 代碼只會默默地做什么,這通常就是你在做DOM操作時所需要的。



查看完整回答
反對 回復 2019-09-16
  • 3 回答
  • 0 關注
  • 595 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號