currentStyle

currentStyle用js的style属性可以获得html标签的样式,但是不能获取非行间样式。解决方法:在IE下可以用currentStyle;在FF下用getComputedStyle;然而,为了让其兼容,解决

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

用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.net/154507.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • xna framework有啥用_net和xna在哪下载

    xna framework有啥用_net和xna在哪下载 XNAFramework是建置于.NETFramework2.0上,另外还加入了一些专注于游戏开发上类别库,在指定的平台上使程式码重用达之最大效果。XNAFramework在一个特别为有管理式游戏运行的通用语言执行层(CommonLanguageRuntime)版本上运行。这个执行层支援WindowsXP、WindowsVista和XBox360。由于游戏是开发在执行

    2022年9月13日
    4
  • 简单利用conda安装tensorflow-gpu=2.2.0

    简单利用conda安装tensorflow-gpu=2.2.0网上安装tensorflow-gpu=2.2.0什么的一大推,而且最后还报错,一般问题出现在:一、安装下载慢二、cuda和cudnn版本不对我最后实验了,很好解决上面的问题。一、安装tensorflow-gpu=2.2.0使用清华源安装,代码如下:pipinstalltensorflow-gpu==2.2.0-ihttps://pypi.tuna.tsinghua.edu.cn/simple这样下载速度飞起!二、什么去官网下载cuda版本配置路径,感觉都不靠谱,我实验了,一个命令搞定

    2022年6月15日
    37
  • 中石化项目都是些什么工程_中海油石化工程待遇

    中石化项目都是些什么工程_中海油石化工程待遇石化项目是什么?石化项目是什么工程?下面就让中策大数据为你解答。石油化工工程就是涵盖整个石油化工系统的工程。石化项目工程内容可以划分为以下几种:1、石油化工总的区分包括化工工程、石油工程、油气工程、储运工程等;2、按照行业划分包括石油开采工程、石油加工工程、化工化纤工程、石油化工后加工工程等;3、按照建设装置的工程区分,包括常减压装置工程、催化裂化装置工程、气体分馏装置工程、加氢裂化装置工程、加氢精制装置工程、脱硫制硫装置工程、重整装置工程、芳烃装置工程、乙烯工程、等等。4、按照

    2022年10月16日
    2
  • w ndows无法连接到System,Windows无法连接到System Event Notification Service服务解决方法…[通俗易懂]

    w ndows无法连接到System,Windows无法连接到System Event Notification Service服务解决方法…[通俗易懂]采用windows7操作系统的电脑在开机时提示“Windows无法连接到SystemEventNotificationService服务”(如下图)的解决方法:操作系统:Windows7旗舰版32位。(根据网上资料,本文的方法同样适用于:WindowsVista)问题描述:今晚开机,电脑自检时没什么问题,但输入登入密码后,等待了N分钟(非常的慢,硬盘指示灯也不怎闪烁,都以为死机…

    2022年5月14日
    147
  • js判断输入字符串是否为空、空格、null总结

    js判断输入字符串是否为空、空格、null总结判断字符串是否为空 varstrings nbsp if string length 0 nbsp nbsp alert 不能为空 nbsp 判断字符串是否为 空 字符即用户输入了空格 nbsp varstrings nbsp if strings replace s s g length 0 nbsp nbsp alert 不能为

    2025年6月22日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号