为不在javascript中工作的动态创建类设置属性
set attribute for dynamically created class not working in javascript
http://jsfiddle.net/55Lht7hu/
我正在尝试向div添加一个属性(动态创建的)。但在这里不起作用。
var style3=createElement('style');
style3.type="text/css";
var target3=document.getElementById('target3');
target3.addEventListener('click',function(){
style3.innerHTML='.target4{background-color:#444;}';
document.getElementsByTagName('head')[0].appendChild(style3);
target3.setAttribute('class','target4');
});
此外,是否可以将伪元素动态设置为该div?。
首先并没有这样的全局函数createElement
,您应该使用文档对象的方法:
var style3 = document.createElement('style');
然后,为了应用新的背景色,您需要使规则优先级更高,因为类选择器.target4
不会胜过id选择器#target3
。例如,您可以通过在选择器前面加上相应的元素id选择器:#target3.target4
来增加选择器的权重。
最后,您可以删除style3.type="text/css";
,因为它是style
元素的默认类型。
总之:
var style3 = document.createElement('style');
var target3 = document.getElementById('target3');
target3.addEventListener('click', function () {
style3.innerHTML = '#target3.target4 {background-color:#444;}';
document.head.appendChild(style3);
target3.setAttribute('class', 'target4');
});
#target3 {
width:100px;
height:200px;
background:red;
}
<body>
<div id="target3"></div>
</body>
相关文章:
- 如何在javascript中创建动态json对象
- 如何创建动态ajax提交表单
- 如何在javascript中创建动态正则表达式
- 如何使用pouchdb创建动态查询(couchdb可能也是如此)
- 如何在jquery mobile中使用json文件创建动态下拉菜单
- 基于所选下拉列表值创建动态复选框
- 使用推动创建动态对象
- 在浏览器窗口中创建动态灵活的分割标记
- 将字符串与integer连接,用作jquery中的变量(创建动态变量)
- 创建动态javascript对象
- 如何使用指令属性值创建动态模板
- 使用 JavaScript 创建动态下拉列表
- 如何在创建动态 HTML 页面时使用日期选择器
- 使用javascript中的append创建动态下拉列表
- Jquery - 创建动态名称选择器
- 如何根据查询字符串值创建动态超链接
- 使用javascript创建动态多维关联数组
- 使用javascript创建动态二级下拉列表
- 在JavaScript中创建动态绑定
- 在JS中创建动态对象