咨询:jQuery中.is()方法的原生JavaScript等价实现方式
原生JavaScript替代jQuery的
.is()判断方案 当然有对应的原生实现啦!咱们先搞清楚你那段jQuery代码到底在做什么:它是在检查页面中是否存在至少一个同时拥有.product类,并且还带有.standalone或.expired类的元素,如果存在就执行后续逻辑。
下面给你两种常用的原生写法,按需选择:
方法一:直接使用querySelector(最简洁,和原逻辑最匹配)
querySelector支持复合CSS选择器,和jQuery的选择器语法几乎一致,只要能找到匹配的元素就会返回该元素(属于真值),找不到则返回null(假值),完全可以替代原代码的判断逻辑:
if (document.querySelector('.product.standalone, .product.expired')) { // 这里写你的results逻辑 }
方法二:遍历元素集合检查类名(适合已获取元素集合的场景)
如果你已经提前获取了所有.product元素,想要逐个检查它们的类名,可以用classList.contains结合数组的some方法:
// 先获取所有.product元素 const productElements = document.querySelectorAll('.product'); // 检查是否有元素符合条件 const hasTargetClass = Array.from(productElements).some(element => element.classList.contains('standalone') || element.classList.contains('expired') ); if (hasTargetClass) { // 这里写你的results逻辑 }
这里some方法会遍历数组,只要有一个元素满足条件就立即返回true,和jQuery.is()的判断逻辑完全对齐。
两种方法都能实现你要的效果,第一种更简洁高效,推荐优先使用哦~
内容的提问来源于stack exchange,提问作者John Wick
相关产品推荐
相关产品推荐

