JavaScript实现修改伪类样式


Posted in Javascript onNovember 27, 2017

项目中时常会需要用到使用JavaScript来动态控制为元素(:before,:after)的样式,但是我们都知道JavaScript或jQuery并没有伪类选择器。这里总结一下几种常见的方法。

HTML

<p class="red">Hi, this is a plain-old, sad-looking paragraph tag.</p>

CSS

.red::before {
content: 'red';
color: red;
}

 

方法一

使用JavaScript或者jQuery切换<p>元素的类名,修改样式。

.green::before {
content: 'green';
color: green;
}
$('p').removeClass('red').addClass('green');

 

 

方法二

在已存在的<style>中动态插入新样式。

document.styleSheets[0].addRule('.red::before','color: green');
document.styleSheets[0].insertRule('.red::before { color: green }', 0);

 

方法三

创建一份新的样式表,并使用JavaScript或jQuery将其插入到<head>中

// Create a new style tag
var style = document.createElement("style");

// Append the style tag to head
document.head.appendChild(style);

// Grab the stylesheet object
sheet = style.sheet

// Use addRule or insertRule to inject styles
sheet.addRule('.red::before','color: green');
sheet.insertRule('.red::before { color: green }', 0);

 

jQuery

$('<style>.red::before{color:green}</style>').appendTo('head');

 

方法四

使用HTML5的data-属性,在属性中使用attr()动态修改。

<p class="red" data-attr="red">Hi, this is plain-old, sad-looking paragraph tag.</p>
.red::before {
content: attr(data-attr);
color: red;
}
$('.red').attr('data-attr', 'green');

以上就是我们为大家整理的四种方法,如果大家有更好的方法,可以在下方的留言区讨论。

Javascript 相关文章推荐
iframe 自适应高度[在IE6 IE7 FF下测试通过]
Apr 13 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
Oct 27 Javascript
Safari5中alert的无限循环BUG
Apr 07 Javascript
jquery显示和隐藏div特效实例
Feb 27 Javascript
JavaScript中的连字符详解
Nov 28 Javascript
原生JS实现图片轮播切换效果
Dec 15 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
Feb 15 Javascript
详解jquery插件jquery.viewport.js学习使用方法
Sep 08 jQuery
js装饰设计模式学习心得
Feb 17 Javascript
用Axios Element实现全局的请求loading的方法
Mar 15 Javascript
对vue中v-on绑定自定事件的实例讲解
Sep 06 Javascript
手写Spirit防抖函数underscore和节流函数lodash
Mar 22 Javascript
Vue.js搭建移动端购物车界面
Jun 28 #Javascript
Vue实现购物车场景下的应用
Nov 27 #Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 #Javascript
vue购物车插件编写代码
Nov 27 #Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 #Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
Nov 27 #Javascript
vue2实现可复用的轮播图carousel组件详解
Nov 27 #Javascript
You might like
一步一步学习PHP(3) php 函数
2010/02/15 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
JavaScript OOP类与继承
2009/11/15 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
python脚本内运行linux命令的方法
2015/07/02 Python
python类和继承用法实例
2015/07/07 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python列表list保留顺序去重的实例
2018/12/14 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
绝对经典成功的大学生推荐信
2013/11/08 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
初中班级口号
2014/06/09 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
MySQL分区路径子分区再分区
2022/04/13 MySQL