我们都知道,js不能直接获取样式表中的样式,例如width,left,只能直接获取行内样式,但是现在主流不建议写行内样式,因此我们封装一个可以直接获取非行间样式的函数
currentStyle是IE中的属性,getComputedStyle是其他浏览器的方法
(1) getStyle(注意其有两个参数);
第一个参数 obj 为要获取的对象,第二个参数attr为要获取的属性,
(2)在非行间样式中,style属性只能去赋值,在行间样式中才能去获取样式;
行间样式是指通过style.xx获得的样式,但对于class引用的 属性无法获取,
如果要获取class引用的属性,则需要
function getStyle(obj,attr){ //获取非行间样式,obj是对象,attr是值if(obj.currentStyle){ //针对ie获取非行间样式
return obj.currentStyle[attr]
}else{
return getComputedStyle(obj,false)[attr] //针对非ie
}
}
代码拷贝于http://www.cnblogs.com/piercalex/p/3386574.html
我们把这句代码分为3部分:--n:自减
():改变执行顺序
!:非
n是一个变量,--n就是将这个变量的数值减去1,也就是n = n - 1,如:n-5,那么--n就等于4
!(感叹号)是非运算,就是not,这里是将括号内的值转化为Boolean型后取非。
刚才说了--n,n是一个数值,那么转化为boolean型后是什么?所有非0数值被转化为boolean型都是true,0转化后是false。
那么--n如果等于0,转化后就是false,再取反,就是true;如果--n非0,那么转化后是true,再取反就是false;那么--n在什么情况下会被转化为false呢?很明确,n等于1时。
总结以上几点,最终答案是:
如果n等于1,那么这句代码返回true
如果n不等于1,那么这句代码返回false