Javascript DOM.querySelector()空问题

Javascript DOM.querySelector()空问题,javascript,Javascript,我用纯JavaScript编写代码,有很多场景我会使用querySelector()方法,我多次遇到类似这样的问题 “未捕获的TypeError:无法读取以下代码的null属性'classList'” document.querySelector('.tab.active').classList.remove('active'); /**选项卡当时不可用**/ 在Jquery$('.tab.active').removeClass('active')才会运行 我希望在JavaScript中实现

我用纯JavaScript编写代码,有很多场景我会使用
querySelector()
方法,我多次遇到类似这样的问题

“未捕获的TypeError:无法读取以下代码的null属性'classList'”

document.querySelector('.tab.active').classList.remove('active');
/**选项卡当时不可用**/

在Jquery
$('.tab.active').removeClass('active')才会运行

我希望在JavaScript中实现类似的行为。请提供你的想法

我不愿意为我正在做的每个DOM操作编写三行代码,寻找像Jquery这样的一行代码

var activeTab = document.querySelector('.tab.active');
if(activeTab !== 'null' ){
    activeTab.classList.remove('active'); 
}

正如您最初所做的那样,显式地检查代码中元素的存在性肯定是您可以做的最清晰的方法,但是如果您确实不想做,您可以创建自己的函数,如果没有找到元素,则返回一个对象,其方法不做任何事情。例如:

const customQS=selector=>(
文档查询选择器(选择器)
|| {
类列表:{
删除:()=>void 0
}
}
);
customQS('.tab.active').classList.remove('active');

log('done,no error')
var el=document.querySelector(..);如果(el)el.classList.remove('fdsafds')这就是jQuery在幕后所做的,它将空结果转换为空jQuery对象。如果您不想使用jQuery,您也必须这样做。您可以使用三元运算符来实现单行解决方案<代码>文档.querySelector('.tab.active')1=='null?document.querySelector('.tab.active').classList.remove('active'):''能否给出更一般的属性,请不要仅限于“classList”属性您每次都必须实际创建一个元素,或者创建一个包含所有可能属性(及其方法)的对象。