javascript - 如何检测元素是否具有::after(伪元素)?

标签 javascript css google-chrome

假设 input元素有伪元素 ::after在该元素的末尾,然后有一个按钮,即有伪元素 ::after之间 input元素和 button元素。例如,请看下面的图片-

enter image description here

在上面的例子中,当 button单击后,一段时间后,input已更改,::after伪元素消失了。

如何检测输入有 ::after还是不?

最佳答案

您可以使用 getComputedStyle(el, '::after').content 获取 ::after 伪元素的内容(适用于 ::之前 也是如此)。如果内容不是none,则伪元素存在。

const hasAfter = selector => {
  const el = document.querySelector(selector);
   
  return getComputedStyle(el, '::after').content !== 'none';
}


console.log(hasAfter('.has')); // true
console.log(hasAfter('.hasnt')); // false
.has::after {
  content: 'after';
}
<p class="has">has </p>

<p class="hasnt">hasn't</p>

关于javascript - 如何检测元素是否具有::after(伪元素)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58197145/

相关文章:

javascript - 使用 componentDidUpdate 循环

javascript 幻灯片 slick_accessible_slideshow

html - CSS - 断线链接框

html - Chrome 不显示内联图片

php - 谷歌浏览器不会更新 CSS

javascript - TypeScript:如何在编译时声明固定大小的数组以进行类型检查

javascript - CSS 三 Angular 形在点击时翻转

html - 将 <ul> 与图像旁边的中间对齐

Chrome 和 Firefox 的 CSS 动画

javascript - Jasmine 单元测试失败?