js 遍历body下的所有元素

想得到body下的所有元素的集合。
<body>
<a></a>
<div></div>
<input />
</body>
通过js的什么方法可以获得body下的所有元素集合?
试过document.getElementsByTagName("*"),但怕兼容性不好

        //返回body下所有对象数组
        function getAll() {
            var objs = document.all;
            var length1;
            for (var i = 0; i < objs.length; i++) {
                var obj = objs[i].tagName;
                if (obj == "body" || obj == "BODY") {
                    length1 = i+1;
                    break;
                }
            }
            var b_objs = new Array();
            for (var j = length1; j < objs.length; j++) {
                b_objs.push(objs[j]);
            }
            return b_objs;
        }

 js没有提供获得body下的所有元素集合,只提供了获得全部标签的document.all

追问

document.all 只有在ie下才可以的。

追答

all[]
提供对文档中所有 HTML 元素的访问。 IE 4 F 1 O 9 这是W3C 给的兼容数据
在我这儿IE、360、火狐(31.0)、google(版本 34.0.1847.131 m) 都可以

温馨提示:答案为网友推荐,仅供参考