jquery - 如何使用 css 或 jQuery 编辑焦点上的伪元素

标签 jquery html css

您好,我想在单击输入字段时删除伪 :after 元素。我知道我应该使用 :focus 但由于某些原因我无法让它工作。

这是 HTML:

<li id="field_1_1">
    <div class="ginput_container">
        <input name="input_1" id="input_1_1" type="text">
        ::after
    </div>
</li>

:after 元素是由这个 css 引起的:

#field_1_1 .ginput_container_text:after {
    content: "\25CF";
    position: absolute;
}

我的目标是在用户单击输入字段时删除此 :after 元素。我已经尝试过 CSS 和 jQuery,但都无法正常工作。

这是我尝试使用 CSS 的结果:

#footer-form #input_1_1:focus #field_1_1 .ginput_container_text:after {
    display: none;
}

这是我尝试使用 jQuery 的结果:

jQuery("#field_1_1").click(function(){
    jQuery("#field_1_1 .ginput_container_text:after").remove();
});

有人有什么建议吗?

谢谢

最佳答案

您不能在 jQuery 中修改伪元素。您最好的选择是用一个额外的类来修改 CSS 中的伪元素,指示该元素的替代状态,然后简单地在 jQuery 中删除或添加该类。

例如,

#field_1_1 .ginput_container_text:after {
    content: "\25CF";
    position: absolute;
}
#field_1_1.clicked .ginput_container_text:after {
    display:none;
}

jQuery("#field_1_1").click(function(){
    this.addClass('clicked');
});

关于jquery - 如何使用 css 或 jQuery 编辑焦点上的伪元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39800828/

相关文章:

jquery - 如何用jquery交换tr的位置

html - CSS 盒子问题

jquery - 在运行时使用 jQuery 创建 CSS 规则/类

css 位置绝对问题与 cforms 中的图像

javascript - 使用 jQuery .when .then

javascript - 如何删除 div 但防止滚动位置被更改?

javascript - 禁止将文本粘贴到 HTML 表单中

html - 如何在 ng-grid 表格中添加 <caption> 标签?

html - 在某些机器上,Safari 中的边距更多

javascript - 必填字段验证器不适用于 JQuery 选择的下拉列表