js 怎么获取body中的所有元素 不只是body的子元素,还有子元素的子元素

如题所述

第1个回答  2013-02-27
两种方式:
第一种纯js,使用递归:
<script>
/*
*第一个参数为页面元素对象或者数组
*第二个参数为回调函数【回调函数默认传递一个函数,即当前对象】
*/
function Each(obj,fun){
if('function'!==typeof(fun) || !obj){
return false;
}
if('undefined'!==typeof(obj.length)){
for(var i=0;i<obj.length;i++){
var o=obj[i];var r=fun(o)||true;
if(r===true){
r=Each(o.children,fun);
if(!r) return false;
}
}
}else{
var r=fun(obj)||true;
if(r===true){
r=Each(obj.children,fun);
if(!r) return false;
}
}
}
</script>

用法:
//
Each(document.getElementsByTagName("body"),function(obj){
if(obj.nodeName==="UL")//obj为当前遍历到的对象
return false;//如果返回false就会停止遍历
alert(obj.nodeName);
});
第二种方法,使用jquery:
$("body *").each(function(i, obj){
alert( "Item #" + i + ": " + obj );
});本回答被网友采纳
第2个回答  2013-02-27
$("body *") 这是JQ,不知道JS怎么写。本回答被提问者采纳
相似回答