JS DOM操作无法获取display属性问题(获取非行内样式问题及解决办法)

在网上看了很多关于这个问题的解释,我也都去一一尝试了,写一篇自己的总结

先把代码贴出来吧:

 

最开始我用内部样式表为p标签添加了display:none属性,但是通过图一中红框语句获取到的值为“”,然后换了下面这种方式,获取到的值为null。后来我通过类添加该属性和通过外部样式表添加发现也一样。

 最后我发现只有行内样式可以获取到display的值,有两种方法:

第一,直接在标签内添加style="display: none;";

第二,在JS为li元素循环注册点击事件时通过

来进行添加,这两种添加方式都有效。

这个地方的原理我并不能解释,有感兴趣的朋友可以去研究一下原理,研究出来了记得留言告诉我一下。

PS:之前在别的博客里发现有人写必须要通过id选择才可以,其实这里通过什么样的方法选择都是没问题的。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

更新一下,我又去了解了一下这一块知识,发现是所有的非行内样式都不能通过这种方法获取。但是可以通过window.getComputedStyle来获取。

关于window.getComputedStyle方法,有两个参数,分别element和pseudoElement。element为所要选取的元素,pseudoElement可选,伪类元素(当不查询伪类元素的时候可以忽略或者传入 null,这个我还不知道怎么用)

下面放一个样例,还有一个点就是获取到的值是带有单位的,例如我这里获取的height,返回值为字符串‘xxpx’;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值