我正在我的網站上進行一些 jQuery 到 Vanilla JS 的轉換。在 jQuery 中,我可以這樣做:
$("#nav-menu>ul>li.active").removeClass("active");
全部在一行中,將從任何擁有它的 <li> 元素中洗掉“活動”類(只有一個)。如果沒有 <li> 元素具有該類,則沒有錯誤并且我的腳本繼續運行。
但是,在 Vanilla JS 中,如果我這樣做:
document.querySelector('#nav-menu>ul>li.active').classList.remove('active');
并且當前沒有 'actove' 類的 <li> 元素,我收到以下錯誤并且我的腳本停止運行:
Uncaught TypeError: Cannot read prperties of null (reading 'classlist')
我可以像這樣解決這個問題:
var active = document.querySelector('#nav-menu>ul>li.active');
if(active) {
active.classList.remove('active');
}
但我想知道是否有更好、更短的方法來做到這一點(即選擇一個元素,如果它存在,然后用它做點什么)?有沒有一種速記方式或方法可以用更少的行等來完成?
提前致謝。
uj5u.com熱心網友回復:
您可以為此目的使用可選鏈接,僅當左側的運算式不是未定義或為空時,它才能訪問屬性或進入鏈接函式呼叫。
document.querySelector('#nav-menu>ul>li.active')?.classList.remove('active');
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/410635.html
標籤:
