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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 怎么获取body中的所有元素 不只是body的子元素,还有子元素的子元素相关的知识,希望对你有一定的参考价值。

参考技术A 两种方式:
第一种纯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 );
);
参考技术B $("body *") 这是JQ,不知道JS怎么写。本回答被提问者采纳

js获取元素宽高

documentElement 属性可返回文档的根节点。

元素内部宽度(包括 margin、border、padding):document.body.clientWidth
元素布局宽度(包括 border、padding、滚动条宽度):document.body.offsetWidth
元素内容区域宽度document.body.scrollWidth 返回元素的内容区域宽度或元素的本身的宽度中更大的那个值
网页被卷去的高:document.body.scrollTop
网页被卷去的左:document.body.scrollLeft
网页正文部分上:window.screenTop
网页正文部分左:window.screenLeft
屏幕分辨率的高:window.screen.height
屏幕分辨率的宽:window.screen.width
屏幕可用工作区高度:window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth

以上是关于js 怎么获取body中的所有元素 不只是body的子元素,还有子元素的子元素的主要内容,如果未能解决你的问题,请参考以下文章

jquery 或者js 怎么获取页面光标所在的元素?

如何获取html中body的值

jQuery怎么获取一个DIV下所有元素的值

js 怎么获取iframe 的高度?

js如何获取div中的数据?

为啥css要放在头部,js要放在body底部