我知道我可以使用 JQuery(如 isHovered)检查一些伪类的状态,我知道我可以通过在其父节点上运行 querySelector (/querySelectorAll) 检查元素是否具有特定的伪类。
第一个对我来说完全没用,因为我不会使用 JQuery 并且 JQuery 没有 is
我需要查询的伪类的方法。
第二个解决方案似乎很脏,我的意思是如果它是一个对象的属性(对象是 Dom 元素)我应该能够以一种直接的方式获得它,而不是通过在其父节点上运行 q 函数。如果我的元素没有父节点怎么办(您可能会质疑没有父节点的元素具有伪类的可能性。现在在浏览器中可能会也可能不会,但理论上是可能的,也许在虚拟中Dom,或者在浏览器的 future 实现中,idk。)。
我想要的是类似 element.hasPseudoClass("<the class>")
的东西或 element.getPseudoClasses()
或任何其他方便的方式来查询元素的伪类。我没有找到直接的东西。
最佳答案
你可以使用
element.matches(':hover')
var box = document.getElementById("box");
var msg = document.getElementById("msg");
setInterval(() => msg.textContent = box.matches(':hover') ? "in" : "out", 1000);
<div id="box" style="width: 100px; height: 100px; background-color: red; "></div>
<div id="msg"></div>
参见 MDN documentation .
关于javascript - 在纯 Javascript 中查询元素的伪类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38195742/