我正在使用jQuery更改CSS,我希望根据输入值删除我添加的样式:
if(color != '000000') $("body").css("background-color", color); else // remove style ?
我该怎么做?请注意,只要使用颜色选择器选择颜色(即当鼠标在色轮上移动时),上面的一行就会运行。
第二个注意:我无法使用css("background-color", "none")
执行此操作,因为它将从css文件中删除默认样式。我只想删除jQuery添加的background-color
内联样式。
答案 0 :(得分:1255)
将属性更改为空字符串似乎可以完成这项工作。
$.css("background-color", "");
答案 1 :(得分:517)
The accepted answer有效但在我的测试中在DOM上留下了一个空的style
属性。没什么大不了的,但是这一切都消除了:
removeAttr( 'style' );
这假设您要删除所有动态样式并返回样式表样式。
答案 2 :(得分:164)
有几种方法可以使用jQuery删除CSS属性:
<强> 1。将CSS属性设置为其默认(初始)值
.css("background-color", "transparent")
请参阅initial value for the CSS property at MDN。
此处默认值为transparent
。您还可以将inherit
用于多个CSS属性,以从其父级继承该属性。在CSS3 / CSS4中,您还可以使用initial
,revert
或unset
,但这些关键字可能会限制浏览器支持。
<强> 2。删除CSS属性
空字符串会删除CSS属性,即
.css("background-color","")
但请注意,正如jQuery .css() documentation中所述,这会删除该属性,但它与IE8在某些CSS速记属性方面存在兼容性问题,包括背景。
将样式属性的值设置为空字符串 - 例如 $('#mydiv')。css('color','') - 从元素中删除该属性 如果已经直接应用,则是否为HTML样式 属性,通过jQuery的.css()方法,或通过直接DOM 操纵样式属性。但是,它不会删除 已在样式表或。中应用CSS规则的样式 元件。警告:一个值得注意的例外是,对于IE 8及更低版本, 删除边框或背景等速记属性 无论设置什么,都要从元素中完全删除该样式 在样式表或元素中。
第3。删除元素的整个样式
.removeAttr("style")
答案 3 :(得分:47)
我找到了使用纯JavaScript删除样式属性的方法,只是为了让您了解纯JavaScript的方式
var bodyStyle = document.body.style;
if (bodyStyle.removeAttribute)
bodyStyle.removeAttribute('background-color');
else
bodyStyle.removeProperty('background-color');
答案 4 :(得分:18)
这将删除完整标记:
$("body").removeAttr("style");
答案 5 :(得分:17)
这些jQuery函数中的任何一个都应该起作用:
$("#element").removeAttr("style");
$("#element").removeAttr("background-color")
答案 6 :(得分:6)
如下:
var myCss = $(element).attr('css');
myCss = myCss.replace('background-color: '+$(element).css('background-color')+';', '');
if(myCss == '') {
$(element).removeAttr('css');
} else {
$(element).attr('css', myCss);
}
答案 7 :(得分:6)
试试这个:
$('#divID').css({"background":"none"});// remove existing
$('#divID').css({"background":"#bada55"});// add new color here.
由于
答案 8 :(得分:6)
只需使用:
$('.tag-class').removeAttr('style');
或
$('#tag-id').removeAttr('style');
答案 9 :(得分:5)
如果您使用CSS样式,则可以使用:
$("#element").css("background-color","none");
然后替换为:
$("#element").css("background-color", color);
如果您不使用CSS样式并且HTML元素中包含属性,则可以使用:
$("#element").attr("style.background-color",color);
答案 10 :(得分:5)
使用我的插件:
$.fn.removeCss=function(all){
if(all===true){
$(this).removeAttr('class');
}
return $(this).removeAttr('style')
}
对于您的情况,请按以下方式使用它:
$(<mySelector>).removeCss();
或
$(<mySelector>).removeCss(false);
如果你想删除其类中定义的CSS:
$(<mySelector>).removeCss(true);
答案 11 :(得分:2)
2018
有本机API
element.style.removeProperty(propery)
答案 12 :(得分:1)
您使用
删除样式 removeAttr( 'style' );
答案 13 :(得分:1)
这个也有效!!
$elem.attr('style','');
答案 14 :(得分:1)
为什么不制作你想删除CSS类的样式?现在您可以使用:.removeClass()
。
这也开启了使用.toggleClass()
(如果该课程已存在,请删除该课程,如果该课程不存在,请将其添加。)
在处理布局问题时,添加/删除类也不太容易改变/排除故障(而不是试图找出特定样式消失的原因。)
答案 15 :(得分:1)
{{1}}
答案 16 :(得分:0)
您可以使用:
$("#eslimi").removeAttr("style").hide();
答案 17 :(得分:0)
尝试
document.body.style=''
$("body").css("background-color", 'red');
function clean() {
document.body.style=''
}
body { background-color: yellow; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick="clean()">Remove style</button>
答案 18 :(得分:0)
试试这个
$(".ClassName").css('color','');
Or
$("#Idname").css('color','');
答案 19 :(得分:0)
这比其他一些解决方案更复杂,但可能在场景中提供更多灵活性:
1)创建一个类定义以隔离(封装)您想要选择性地应用/删除的样式。它可以是空的(对于这种情况,可能应该是):
.myColor {}
2)根据http://jsfiddle.net/kdp5V/167/ this answer gilly3的http://jsfiddle.net/qvkwhtow/使用此代码:
function changeCSSRule(styleSelector,property,value) {
for (var ssIdx = 0; ssIdx < document.styleSheets.length; ssIdx++) {
var ss = document.styleSheets[ssIdx];
var rules = ss.cssRules || ss.rules;
if(rules){
for (var ruleIdx = 0; ruleIdx < rules.length; ruleIdx++) {
var rule = rules[ruleIdx];
if (rule.selectorText == styleSelector) {
if(typeof value == 'undefined' || !value){
rule.style.removeProperty(property);
} else {
rule.style.setProperty(property,value);
}
return; // stops at FIRST occurrence of this styleSelector
}
}
}
}
}
用法示例:http://localhost/htaccess_test/put_some_value_here
警告:
以这种方式隔离样式就是CSS的全部内容,即使操纵它也不是。操纵CSS规则并不是jQuery的全部,jQuery操纵DOM元素,并使用CSS选择器来完成它。
答案 20 :(得分:0)
简单的网络开发便宜。我建议在删除特定样式时使用空字符串
$(element).style.attr = ' ';