两种方式:第一种纯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 );});