
两种方式:
第一种纯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>里的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)