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

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

两种方式:

第一种纯js,使用递归:

<script>

/

第一个参数为页面元素对象或者数组

第二个参数为回调函数回调函数默认传递一个函数,即当前对象

/

function Each(obj,fun){

if('function'!==typeof(fun) || !obj){

return false;

}

if('undefined'!==typeof(objlength)){

for(var i=0;i<objlength;i++){

var o=obj[i];var r=fun(o)||true;

if(r===true){

r=Each(ochildren,fun);

if(!r) return false;

}

}

}else{

var r=fun(obj)||true;

if(r===true){

r=Each(objchildren,fun);

if(!r) return false;

}

}

}

</script>

用法:

//

Each(documentgetElementsByTagName("body"),function(obj){

if(objnodeName==="UL")//obj为当前遍历到的对象

return false;//如果返回false就会停止遍历

alert(objnodeName);

});

第二种方法,使用jquery:

$("body ")each(function(i, obj){

alert( "Item #" + i + ": " + obj );

});

$(document)ready(function(e) {//页面加载完成后直接运行

var abc=$(documentbody)html();//JQ方式

alert(abc);

var bcd=documentbodyinnerHTML;//JS方式

alert(bcd);

});

用正则来匹配的话,可以使用:<body>(|\s|\r|\n|\f)</body>

我用javascript做了个小例子,可以获取body里面的内容,你可以测试一下:(希望可以帮到你)

<html>

<body>

输入框:<textarea id="t1" rows=15 cols=80></textarea>

<div style="padding-left:300px"><input type="button" value="匹配" onClick="display()" /></div>

输出框:<textarea id="t2" rows=15 cols=80></textarea>

<script>

function display(){

var content = documentallt1innerText;

var reg = new RegExp("<body>(|\s|\r|\n|\f)</body>");

var arr = contentmatch(reg);

if(arr != undefined){

if(arrlength > 0)

documentallt2innerText = contentmatch(reg)[0];

}else{

alert("没有找到匹配!");

}

}

</script>

</body></html>

这样直接将ID设置成一个动态的ID的时候,一般不能通过直接读取ID来达到你想要读取的模块,你可以这样想,是否可以通过它的父节点来读取它的ID值?或者这样想,你既然已经有一个特别的name属性在这个DIV种,是否能通过name属性来进行读取? 现在来说第一个方法:假如你在上面的代码的<li>标签中假如这样一个id :<li id="test">那么可以这样来找到DIV的ID值: var the_div_id = documentgetElementById("test")getElementsByTagName("div")[0]id; 这样要求一点点小技巧。 至于你说如何取DIV的动态ID,这样还不简单么?随便取个字符串然后加上一些有规律的数字不就好了?比如说用个for(var i=0;i<10;i++){}循环输出你上面的代码,那么你的ID可以直接写成:<div id=\"info"+i+"\" name= 这样你的DIV的ID不就有规律地从info0开始直到info9了?? 在学习JAVASCRIPT的时候我建议你再看看jquerybeidaqingniaoqinghezhongxin

可以使用jQuery的children方法来获取某个元素下的所有子元素。

工具原料:编辑器、浏览器

1、使用children方法可以获得选择器下的所有子元素,代码实例如下:

<!DOCTYPE html>

<html>

<head>

<script type="text/javascript" src="/jquery/jqueryjs"></script>

<style>

  body { font-size:16px; font-weight:bolder; }

  p { margin:5px 0; }

</style>

</head>

<body>

  <div>

    <span>Hello</span>

    <p class="selected">Hello Again</p>

    <div class="selected">And Again</div>

    <p>And One Last Time</p>

  </div>

<script>$("div")children("selected")css("color", "blue");</script>

</body>

</html>

2、运行的结果是找到类名为 "selected" 的所有 div 的子元素,并将其设置为蓝色,结果如下:

<!DOCTYPE html><html><head>

<title></title>

<script type="text/javascript">

function getElements(){

var x=documentgetElementsByName("div"); for(var i=0;i<xlength; i++){

alert(x[i]innerHTML);

}

} </script></head><body>

<div id="1">1231</div>

<div id="2">qweq</div>

<div id="3">qw12</div>

<div id="4">as12</div>

<div id="5">zx12</div></body></html>12345678910111213141516171819202122

输出内容

1231

qweq

qw12

as12

zx12

css中>表示的就是父子级关系只能一级,如下这个示例:

<body>

    <div class="one">

        <div class="two"></div>

    </div>

</body>

像上边这个html结构,如果css写的是:

body > div{}

那就只能控制class为one这个div的样式。如果去掉>,就可以控制body里边的所有div。

属于body中的一块小区域。

根据查阅的百科资料得知,body属于所有浏览器可见区域,所以设置body为margin:0,div属于body中的一块小区域。

div标签能继承body的宽度,因为div是属于块元素的所有他的宽度和父元素。

以上就是关于js 怎么获取body中的所有元素 不只是body的子元素,还有子元素的子元素全部的内容,包括:js 怎么获取body中的所有元素 不只是body的子元素,还有子元素的子元素、如何获取html中body的值、正则表达式怎么读取<body></body>里的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9437445.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存