javascript - 在纯 Javascript 中查询元素的伪类

标签 javascript dom

我知道我可以使用 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/

相关文章:

Javascript 代码直到第二次点击 html 按钮才会触发?

javascript - jQuery 框架内部结构

javascript - 我如何在 DOM 中找到 "refresh"元素?

javascript - 如何在没有浏览器的 node.js 中使用 FormData?

javascript - 我想做一个步进组件

javascript - 我试图在用户输入 ID 时在 Canvas 中创建名片

php - 如何使用 PHP 脚本在任何 DOM 中仅搜索输出 `-`?

javascript - 正则表达式在链接中添加换行符

javascript - 在javascript中创建一个对象数组,然后获取属性

javascript - Windows 应用商店应用程序 javascript filesavepicker