是否可以使用JavaScript删除元素的CSS属性?例如我有div.style.zoom = 1.2
,现在我想通过JavaScript删除zoom属性吗?
是否可以使用JavaScript删除元素的CSS属性?例如我有div.style.zoom = 1.2
,现在我想通过JavaScript删除zoom属性吗?
Answers:
您有两种选择:
选项1:
您可以使用removeProperty方法。它将从元素中删除样式。
el.style.removeProperty('zoom');
选项2:
您可以将其设置为默认值:
el.style.zoom = "";
现在,有效缩放将随样式表中的定义(通过链接和样式标签)而变化。因此,此语法只会修改此元素的局部样式。
removeProperty将从元素中删除样式。
例:
div.style.removeProperty('zoom');
MDN文档页面:
CSSStyleDeclaration.removeProperty
您可以使用styleSheets对象:
document.styleSheets[0].cssRules[0].style.removeProperty("zoom");
警告#1:您必须知道样式表的索引和规则的索引。
注意事项2:浏览器会不一致地实现此对象;在一个中起作用的可能在另一个中不起作用。
CSSStyleRule.prototype.removeProperty
=(实际上CSSStyleRule
没有任何方法。=(
CSSStyleSheet.prototype.removeRule
进行营救。
CSSStyleSheet.prototype.deleteRule
吗?
您可以尝试查找所有具有此类的元素,并将“ zoom”属性设置为“ nothing”。
如果您使用的是jQuery javascript库,则可以使用 $(".the_required_class").css("zoom","")
编辑:删除了该语句,因为事实证明它不正确,正如评论和其他答案中指出的那样,自2010年以来它确实是可能的。
错误:没有从JavaScript修改样式表的普遍已知方法。
css
,不是attr
,您是对的。
这应该可以解决问题-将内联样式设置为普通以进行缩放:
$('div')。attr(“ style”,“ zoom:normal;”);
实际上,如果您已经知道该物业,那就可以了...
例如:
<a href="test.html" style="color:white;zoom:1.2" id="MyLink"></a>
var txt = "";
txt = getStyle(InterTabLink);
setStyle(InterTabLink, txt.replace("zoom\:1\.2\;","");
function setStyle(element, styleText){
if(element.style.setAttribute)
element.style.setAttribute("cssText", styleText );
else
element.setAttribute("style", styleText );
}
/* getStyle function */
function getStyle(element){
var styleText = element.getAttribute('style');
if(styleText == null)
return "";
if (typeof styleText == 'string') // !IE
return styleText;
else // IE
return styleText.cssText;
}
请注意,这仅适用于内联样式...不适用于通过类或类似内容指定的样式...
其他说明:您可能必须在该replace语句中转义一些字符,但是您明白了。
更改元素的所有类:
document.getElementById("ElementID").className = "CssClass";
要将附加类添加到元素:
document.getElementById("ElementID").className += " CssClass";
要检查类是否已应用于元素:
if ( document.getElementById("ElementID").className.match(/(?:^|\s)CssClass(?!\S)/) )