JS修改伪元素

今天想模仿知乎首页做出输入为空时placeholder颜色变红的效果。

发现用这种直接设置的方法无效。

一查资料,发现其实:

伪元素可以被浏览器渲染,但本身并不是DOM元素。它不存在于文档中,所以JS无法直接操作它。而jQuery的选择器都是基于DOM元素的,因此也并不能直接操作伪元素。

那只能通过插入代码或添加切换class的方式来了。

一、插入代码:

$("head").append("<style id='lostPoint-color'>#account::placeholder{color: black}");
但这种方法有个缺点,重复多点几次,会一直增加样式,所以如果不爽的话,还需要再添加判断。


二、切换class

添加一个class:

.requiredErrorMask::placeholder{
    color: red;
}

用$(this).attr("class","classA classB");

classB对应.requiredErrorMask ;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值