javascript - 如果类不存在,则执行此操作,否则忽略
问题描述
嗨,我在 Javascript 中尝试做的是查找 '.productDetails' div 中是否存在类 '.promo',如果存在,则不需要采取任何措施,但如果它不存在,那么我想要它在跨度标签中打印副本。我知道这可以在 jQuery 中完成,但希望用纯 Javascript 来完成。
var elem = document.querySelector('.product-details');
if(!elem.classlist.contains('.promo')){
document.querySelector('.title').innerHTML += "<span class="promo">Add Promo Banner</span>";
}
.product-details {border: 1px black solid; margin: 10px 0}
<div class="product-details">
<div class="title">Title</div>
<div class="promo">Promo 20% off</div>
</div>
<div class="product-details">
<div class="title">Title</div>
</div>
解决方案
首先,JS 中的 case 很重要(classlist
!= classList
),应该是驼峰式classList
。此外,htmlString ( "<span class="promo">Add Promo Banner</span>"
) 的格式不正确。
您可以通过获取元素来检查长度querySelectorAll()
:
var elem = document.querySelectorAll('.product-details');
elem.forEach(function(el){
if(!el.querySelectorAll('.promo').length){
el.querySelector('.title').innerHTML += "<span class=promo>Add Promo Banner</span>";
}
});
.product-details {border: 1px black solid; margin: 10px 0}
<div class="product-details">
<div class="title">Title</div>
<div class="promo">Promo 20% off</div>
</div>
<div class="product-details">
<div class="title">Title</div>
</div>
推荐阅读
- javascript - 谷歌标签管理器帮助选择标签和触发器
- vert.x - 当 Verticles 被分配给事件循环线程时,那么事件循环在内部的工作是什么?
- javascript - 使用正则表达式表达路由器以匹配多个路径
- c++ - 带有 C++ 控制台程序的 USB 条码扫描器
- javascript - 将两个变量与数值相乘时函数不会返回整数(JS)
- python - 使用python迭代器__next__读取文本,但在读取第一行后停止
- python - python解释器是否隐式使用中国剩余定理?
- amazon-web-services - AWS CDK 是否支持为 AWS Step Functions 指定 ResultSelector?
- python - python “scpy.io.savemat” 将自动嵌套列表
- python - pygame中的屏幕不刷新