Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测元素是否具有::after(伪元素)?_Javascript_Css_Google Chrome - Fatal编程技术网

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

Javascript 如何检测元素是否具有::after(伪元素)?,javascript,css,google-chrome,Javascript,Css,Google Chrome,假设一个输入元素在该元素末尾有一个伪元素::在该元素后面有一个按钮,即在输入元素和按钮元素之间有一个伪元素::在之后。例如,请看下图- 在上面的示例中,当单击按钮时,经过一段时间后,输入被更改,并且::after伪元素消失 如何检测输入是否有::after呢?您可以使用getComputedStyle(el,::after').content获取::after伪元素的内容(它也适用于::before)。如果内容不是none,则存在伪元素 const hasAfter=选择器=>{ const

假设一个
输入
元素在该元素末尾有一个伪元素
::在该元素后面有一个按钮,即在
输入
元素和
按钮
元素之间有一个伪元素
::在
之后。例如,请看下图-

在上面的示例中,当单击
按钮时,经过一段时间后,
输入
被更改,并且
::after
伪元素消失


如何检测输入是否有
::after
呢?

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

const hasAfter=选择器=>{
const el=document.querySelector(选择器);
返回getComputedStyle(el,,::after')。内容!='none';
}
console.log(hasAfter('.has'));//真的
console.log(hasAfter('.hasnt'));//错误
.has::after{
内容:“之后”;
}

has


还没有

我认为这在javascript中是不可能的。如果伪元素具有与之关联的样式,则可以尝试类似的操作。var color=window.getComputedStyle(document.querySelector('.element'),':before')。getPropertyValue('any_style_property_value'))。如果返回的值未定义,则它不存在如何修改
document.addEventListener('click',函数(事件){console.log(event.target.tagName);},false)
如果我想知道被单击的元素是否有
::after
吗?用
事件.target
-
文档.addEventListener('click',函数(事件){console.log(getComputedStyle(event.target,'::after')。内容!='none');},false)
::在
有一个属性
canFocus
为真或假后,该属性从服务器/互联网获取值,我可以获取
canFocus
的值吗?@Mike-我不确定你在问什么。您应该使用相关代码打开一个新问题。