【发布时间】:2021-06-28 11:02:08
【问题描述】:
嗨,我在 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>
【问题讨论】:
-
作为documentation for
.classlistshows,您必须将实际的类名而不是类选择器传递给.contains() -
首先是
classList。其次,您的字符串有未转义的引号。第三,不要永远使用.innerHTML +=——改用insertAdjacentHTML。第四,您正在测试.product-details元素本身是否具有.promo类;要测试元素是否包含.promo子元素,请使用.querySelector('.promo')。
标签: javascript class if-statement contains