无需给body加ID或class,如何用Javascript移除其display:none样式
问题原因
你之前的代码不生效,是因为display: none是定义在<style>标签的全局样式规则中,不是写在body元素的style行内属性里,所以移除body的style属性自然不会生效。
解决方案
给你提供两种常用的实现方式:
方式1:行内样式覆盖(最简单)
利用CSS行内样式优先级高于内部样式表的特性,直接给body设置行内display属性即可覆盖原有规则:
document.body.style.display = 'block';
说明:
document.body是DOM内置的直接获取body元素的属性,不需要用getElementsByTagName获取,写法更简洁。
方式2:删除原有样式规则(彻底移除)
如果你需要彻底删掉<style>里的那条body样式规则,可以操作DOM样式表:
// 找到第一个style标签里的第一条规则(就是你写的body{display:none})并删除 document.styleSheets[0].deleteRule(0);
如果那个style标签没有其他有用的样式,也可以直接移除整个style标签:
// 匹配到对应的style标签直接移除,如有多个style可以加筛选条件 document.querySelector('style').remove();
内容的提问来源于stack exchange,提问作者Bathiudeen
相关产品推荐
相关产品推荐

