最近一直在学web方面的知识,今天在练习一个JS实例,遇到一个问题,js取元素样式,一般情况下是通过getElement.style来取的,但这个只能取到元素的内联样式,对于写在其他地方的CSS就无能为力了,在一番苦思没结果情况下,就来查百度了(遇到问题,我喜欢自己尝试能不能解决,尝试的过程虽然没能解决问题,但至少知道了有N种方法不能解决这个问题).
在新浪博客上,看到有位前辈写的博文,说getElement.style是只能取到元素的内联样式,对于没有写在元素内的,无法取倒,但是,js提供了另外一种方法可以很方便的取出元素的样式对象(document.getComputedStyle(‘元素对象‘,‘伪类名‘).属性名),通过对象点属性的方式,就可以取出需要的样式了.注意其中有两个参数,其中一个要填入我们取得的元素对象,另一个填伪类,如果元素没有伪类,第二个属性可以忽略不写.
看完之后,就信心满满的回来做自己的练习,结果问题又出现了,一样是没办法取到样式属性的,尝试了好久,烦得头疼,无奈之下,又回来求助度娘.
但搜索到的文章都大同小异,说的方法都差不多,难道是我写错了?又仔细检查自己代码,没有发现有问题呀!那问题到底出在何处了?
只好在百度上一篇一篇文章的看,苍天不负有心人,终于找到一篇介绍getComputedStyle方法的文章(那个原博客的链接找不到了),其中说到一个细节,getComputedStyle方法,不仅可以通过document来访问,还可以通过windows来访问,难道问题出在这儿了吗?马上尝试了下,哈哈,果真一下子解决了困挠半天的问题.具体原理,为什么用document来访问取不了属性,而通过windows可以?现在还不太明白,初学者,正在努力当中,这个问题先留下,以后随着学习的加深,再来解这个谜.