currentStyle

时间:2022-10-31
本文章向大家介绍currentStyle,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

大家好,又见面了,我是你们的朋友全栈君。

用js的style属性可以获得html标签的样式,但是不能获取非行间样式。

解决方法:

在IE下可以用currentStyle;

在FF下用getComputedStyle;

然而,为了让其兼容,解决方法,封装成getStyle事件:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <style>
      #div2{width:500px;height:100px;background-color:green;}
   </style>
</head>
<body>
<div id="div2"></div>
</body>
</html>
<script>
最初:
if(oDiv2.currentStyle){
 //IE
 console.log(oDiv2.currentStyle.height);
}else{
 //    FF
 console.log(getComputedStyle(oDiv2,false).width);
}
   //封装一个兼容性的获取元素样式的函数
   //分析:哪个元素,哪个样式
   function getStyle(obj,attr){
      if(obj.currentStyle){
      //IE
         return obj.currentStyle[attr];
      }else{
      //FF
         return getComputedStyle(obj,false)[attr];
      }
   }
//用法
   window.onload = function(){
      var oDiv=document.getElementById("div2");
      console.log(getStyle(oDiv,"width"));
   }

//进一步封装 

//obj:获取谁的样式,attr:样式名称,value样式的值
function css(obj,attr,value){
   if(arguments.length==2){//获取
      return getStyle(obj,attr)
   }else if(arguments.length == 3){//设置
      obj.style[attr] =value;
   }
}
//用法:
//      oBtn.onclick = function () {
//        css(oDiv,"background","black");
//        css(oDiv,"border","3px solid yellow");
//        console.log(css(oDiv,"width"));
//     }
</script>

补充:
JavaScript中,函数本身的length属性和arguments.length到底有什么区别?
1,函数本身有length属性,表示参数的个数。
arguments.length也表示参数的个数。

2,函数对象的length属性是形式参数的个数;
arguments伪变量的length属性是某次调用的实际参数的个数。
  例如:
    function func(a,b,c){
      console.log(arguments.length);//输出:3
    }
      console.log(func.length)//输出: 1
    func(1);
以上是后来发现错的,2017-03-16更正了以后:
      function func(a,b,c){
       console.log("arguments:"+arguments.length); //输出 arguments::1
    }
    console.log("length:"+func.length); //输出 length: 3
    func(1);

3,函数本身也是对象,对象就有属性,函数有length属性,比如: function fn(x,y,z) {}中 fn.length=3,说明了函数的形参个数; 而在函数体内,arguments.length表示传入函数的实参个数,比如:function fun(1,2) { console.log(arguments.length)} 中实参的个数为arguments.length=2

4,fn.length: 形参个数 arguments.length: 实参个数

//拓展:

//arguments  数组(所有的参数)  可变参(不定参)
function sum2() {
   var result = 0;
   var i = 0;
   for(i=0;i<arguments.length;i++){
      result += arguments[i];
   }
   console.log(result);//输出13

}
sum2(4,4,5);

 总结,除了可以用arguments去判断参数个数,还可以做不定参的运算。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154507.html原文链接:https://javaforall.cn