jQuery removeProp方法失效:如何移除元素全部样式属性?
解决jQuery移除行内样式的问题
嘿,我来帮你搞清楚这个困惑~
首先,咱们得先弄明白为什么removeProp("style")不起作用:
removeProp()方法是用来移除DOM元素的对象属性(property),而非HTML标签上的属性(attribute)。DOM元素的style是一个内置的管理行内样式的对象,当你调用removeProp("style")时,哪怕暂时删掉了这个对象,浏览器也会立刻重新创建一个新的style对象,所以你看不到行内样式被移除的效果,而且这本来就不是操作行内样式的正确方式。
那要彻底移除所有行内样式,正确的做法是什么呢?
- 使用
removeAttr("style")方法:它直接操作HTML标签上的style属性,会把整个行内样式字符串完全移除,正好满足你“不想逐个清除属性”的需求。
修改后的代码如下:
function applyStyle() { $("#id").css({ cursor: "not-allowed" }); } function removeStyle() { $("#id").removeAttr("style"); }
另外补充个小知识点:
- 如果只是想清除单个样式属性,用
css("cursor", "")是没问题的;但要一次性清空所有行内样式,removeAttr("style")是最直接高效的方式。
内容的提问来源于stack exchange,提问作者ochs.tobi
相关产品推荐
相关产品推荐

