style.width 返回值是定义的width属性值 返回的是字符串
offsetWidth返回对象的padding+border+width属性值之和,返回的是 Number 型的数字
在这里用一个面试题作为例子来看一下:
写一个traverse函数,输出所有页面宽度和高度大于50像素的节点
function traverse(){
var elements = [];
var newarr = [];
if(document.all){ // document.all 返回对文档中所有 HTML 元素的引用
elements = document.all;
}else{
elements = document.getElementsByTagName('*');
}
for(var i = 0; i < elements.length; i++){
// parseFloat 将 style.width 转换成 Number 型
var width = parseFloat(elements[i].style.width) || elements[i].offsetWidth;
var height = parseFloat(elements[i].style.height) || elements[i].offsetHeight;
if(width > 50 && height > 50){
newarr.push(elements[i]);
}
}
return newarr;
}
window.onload=function()
{
console.log(traverse());
}