<title>无标题文档</title> <script> function css(obj,name,value){ if(arguments.length==2){ return obj.style[name]; }else{ obj.style[name]=value; } } window.onload=function (){ var oDiv=document.getElementById('div1'); //alert(css(oDiv,'width')); css(oDiv,'background','green'); }; </script> </head> <body> <div id="div1" style="width:200px;height:200px; background:red;"></div> </body>
下面是一些WEB小知识:
数据类型
number,string,boolean,undefined,object(DOM-document),function
用typeof运算符可以检测数据类型 如: var a=5; typeof a;
数据类型转换
显式类型转换(强制类型转换)
parseInt(),parseFloat()
NaN的意义和检测 isNaN()
隐式类型转换
==和===,前者先转换类型,然后比较。后者不转换类型,直接比较
var a='12'; var b='7' alert(a-b); 输出5
闭包
子函数可以使用父函数中的局部变量
匈牙利命名法
1.类型前缀
2.首字母大写
运算符
取模% 应用:隔行变色、秒转时间
break和continue
break中断整个循环,continue中断本次循环
真:true、非零数字、非空字符串、非空对象
假:false、数字零、空字符串、空对象、undefined
json
var json={a:12,b:5,c:7};
alert(json.a);或者alert(json['a']);
数组有length方法 alert(arr.length); json没有
数组和json遍历
数组:for 0-len
json:for in
如:for(var i in json){
alert('第'+i+'个元素:'+json[i]);
}
数组也可以这么遍历
函数传参
取非行间样式(不能用来设置)
obj.currentStyle[attr] 在IE下兼容 只能取单一样式 background要用backgroundColor
getComputedStyle(obj,false)[attr] 在IE7不兼容
复合样式:background、border
单一样式:width、height、position
可变参(不定参) :arguments
参数的个数可变,参数数组
CSS函数(判断arguments.length、给参数取名,增强可读性)
css(oDiv,'width') 获取样式
css(oDiv,'width','200px') 设置样式
数组
定义
var arr=[12,5,8];
var arr=new Array(12,5,8); 两种方法没有区别
属性
length 既可以获取,又可以设置 例如:快速清数组
数组的方法
添加
push(元素),从尾部添加
unshift(元素),从头部添加
删除
pop(),从尾部弹出
shift(),从头部弹出
splice
删除:splice(起点,长度) arr.splice(2,3);
插入:splice(起点,长度,元素...) arr.splice(2,0,'a','b','c');
替换:arr.splice(2,2,'a','b');
转换类
contact(数组2) 连接两个数组
join(分隔符) 用分隔符,组合数组元素,生成字符串
排序
sort 只能比较字符串,要比较数字,需要借助比较函数
childNodes
children 只获取元素节点
nodeType==3 -> 文本节点
nodeType==1 -> 元素节点
CSS 绝对定位元素,根据有定位的父级定位
offsetParent 用来获取一个元素用来定位的那个父级
操纵元素属性
元素属性操作
第一种:oDiv.style.display="block";
第二种:oDiv.style["display"]="block";
第三种:Dom方式
DOM方式操作元素属性
获取:getAttribute(名称)
设置:setAttribute (名称,值)
删除:removeAttribute(名称)