更新CSS规则属性值
Update CSS rule property value
我有一个html元素,它的样式(使用jquery)是以其类名为目标的背景图像。
当我移除类时,背景图像会保留下来——这不是我所期望或想要的。
test.html
<div id='log' class='tile'>HELLOWORLD</div>
test.css
.tile{
background: none;
}
test.js
$('.tile').css("background-image", "url(tile.jpg)"); // We see image
$('#log').toggleClass('tile'); // We still see image
撞了我的头之后,我想我知道发生了什么。css正在应用于元素,而不是应用于"class"。
如何针对特定的css规则,以便更新其键值?
如果这有道理的话。
如果你想更改".tile"类的css规则,那么你可以这么做。有一篇帖子很好地解释了这一点:
function changeBackgroundImage(className, value){
var ss = document.styleSheets;
for (var i=0; i<ss.length; i++) {
var ss = document.styleSheets;
var rules = ss[i].cssRules || ss[i].rules;
for (var j=0; j<rules.length; j++) {
if (rules[j].selectorText === className) {
rules[j].style.backgroundImage = value;
}
}
}
}
你可以这样称呼它:
changeBackgroundImage(".tile","url(tile.jpg)");
问题是您将background-image
设置为一个内联stlye,它覆盖任何样式表规则。翘课不会有任何影响。
您可以通过样式表规则设置背景,然后添加一个删除它的类;
#log {
background-image: url(tile.jpg);
}
#log.tile {
background: none;
}
或者您可以使用!important
作为;
.tile {
background: none !important;
}
可能是另一种情况,但你明白了吗?:)
尝试删除类tile
并使用bg:none 应用新类
有效-需要时使用bg应用类,不需要时不使用
在这种情况下不需要jQuery。您可以使用普通的旧JavaScript。查看本教程:
javascriptkit.com-使用DOM 更改外部样式表
如果不在样式表中重写该声明,就无法更改类本身,您只能使用选择器中的元素。
尝试:
$('.tile').css("background-image","none")
$('#log').toggleClass('tile',true);
我会将背景图像作为css样式的一部分:
.tile {background-image: url('tile.jpg')};
然后在必要时使用jquery 删除该类
$('#log').removeClass('tile');
您的css中可以有两个类。。。
.tile{
background: none;
}
.tile-w-image
{
background-image: url(tile.jpg);
}
然后使用jquery只需切换类。。。
$("#log").toggleClass('tile').toggleClass('tile-w-image');
我相信这只是很多方法中的一种。我希望它能有所帮助。
你非常接近。您似乎正在将内联CSS添加到元素中,然后尝试切换类。在大多数情况下,您应该将CSS样式分开:
HTML:
<div id='log' class='tile'>HELLOWORLD</div>
jQuery(我想这应该在点击或其他事件时完成):
$('#log').toggleClass('tile'); // We still see image
如果"tile"类已经写入HTML,那么切换它将删除它
CSS:
.tile{
background-image: url(tile.jpg);
}
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 在 IE6 中运行时添加 CSS 规则 - 对象不支持此属性或方法
- 具有Depends和Param属性的Jquery自定义规则验证
- 将CSS规则转换为JavaScript属性
- 找出影响IMG大小的当前CSS规则和HTML属性
- 选择样式属性的规则之一
- 更新CSS规则属性值
- jQuery验证插件,用属性声明需要的规则不工作
- 如何使用jQuery在条件规则中设置HTML属性
- 查找所选元素的所有CSS类规则列表(来自多个样式表)及其活动属性
- 从字符串jQuery中获取CSS属性/规则
- 将元素的属性设置为"from"中的默认值关键帧规则关键字
- 未应用数据属性中的css规则
- 哪个javascript框架可以搜索CSS样式表规则并编辑它们的属性