javascript - 当它不存在时仍然检测元素
问题描述
这是我的代码:
var element = document.getElementsByClassName('btn btn-secondary btn-buy add-cart')[0];
function autoSearch() {
if(typeof(element) != 'undefined' && element != null){
console.log('Element DOES Exist');
}
else {
console.log('Element Does NOT Exist!');
}
}
我的目标是检测一个元素是否存在,并在它存在与否时分别执行一个函数。当元素不存在时,它位于 Class Name 下,btn btn-secondary btn-buy add-cart hidden
但当它存在时,它位于 Class Name 下btn btn-secondary btn-buy add-cart
。
当我检测是否btn btn-secondary btn-buy add-cart
存在时,它仍然说它仍然隐藏时存在。我怀疑这是因为btn btn-secondary btn-buy add-cart hidden
它确实存在时与元素有确切的字母,但我不知道如何修复它。
任何帮助表示赞赏。
解决方案
您可以通过检查元素是否隐藏或仅在未隐藏时选择来解决问题:
第一种方式:
const el = document.querySelector(".btn.btn-secondary.btn-buy.add-cart:not(.hidden)");
if (el) {
// Do something when it's not hidden
} else {
// It's hidden
}
第二种方式,在这种情况下,您el
将始终具有价值(假设元素始终存在):
const el = document.querySelector(".btn.btn-secondary.btn-buy.add-cart");
if (el.classList.contains("hidden")) {
// Do something when it's not hidden
} else {
// It's hidden
}
推荐阅读
- sql - Pyspark SQL:将具有结构数组的表转换为列
- database - mongodb集合的有效索引
- javascript - 如何在 Nestjs 中全局启用 Multer(fileUpload) 包?
- android - 相关的导致错误的小部件是 Scaffold
- html - 即使一切正确,我的背景图像也不会加载
- qt - QML TabView 创建顺序
- java - Spring预定的工作没有被实例化
- assembly - 从一个文件读取并写入另一个文件 - MIPS
- html - 如何使用 ons-navigator (Onsen UI) 检查当前页面
- dataframe - Shinyapp io 服务器上的应用程序不会在表格中显示最新日期,但在本地计算机上它可以工作