js子节点children和childnodes的用法

想要获取子节点的数量,有几种办法。

childNodes

它会把空的文本节点当成节点,

<ul>

文本节点

<li>元素节点</li>

文本节点

<li>元素节点</li>

文本节点

</ul>

所以childNodes.length就是5

而另一种方法

Children

就不用担心

它只显示元素节点即使是非空的文字节点也不显示。

最后,还有一种方法。

NodeType、节点类型。

nodeType=3-------------->文本节点

nodeType=1------------->元素节点

请注意子节点只算第一层的,孙子节点不在子节点的范畴内。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4   <meta charset="UTF-8">
 5   <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6   <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7   <title>Document</title>
 8   <script type="text/javascript">
 9     window.onload=function(){
10       var oUl=document.getElementById("ul");
11       var span1=document.getElementById("span1");
12       var span2=document.getElementById("span2");
13       var span3=document.getElementById("span3");
14       var sum=0;
15       span1.innerHTML=oUl.children.length+"";
16       span2.innerHTML=oUl.childNodes.length+"";
17       for(var i=0;i<oUl.childNodes.length;i++){
18         if(oUl.childNodes[i].nodeType==1){
19           sum++;
20         }
21       }
22       span3.innerHTML=sum+"";
23
24     }
25   </script>
26 </head>
27 <body>
28   <ul id="ul">
29     <li>aaa</li>
30     <li>bbb</li>
31     ccc
32   </ul>
33   children显示的节点数:
34   <span id="span1"></span>
35   <br/>
36   chileNodes显示的节点数:
37   <span id="span2"></span>
38   <br/>
39   nodeType为1的节点数:
40   <span id="span3"></span>
41   <br/>
42 </body>
43 </html>

时间: 2024-08-06 23:18:49

js子节点children和childnodes的用法的相关文章

javascript中的子节点查找,childNodes和children

一.查找元素: 1.getElementById():接收一个参数:要取得的元素的 ID.如果找到相应的元素则返回该元素,如果不存在带有相应 ID 的元素,则返回 null.严格匹配,包括大小写. IE7 及较低版本还为此方法添加了一个有意思的"怪癖": name 特性与给定 ID 匹配的表单元素(<input>.<textarea>. <button>及<select>)也会被该方法返回.如果有哪个表单元素的 name 特性等于指定的

js,jq获取父,兄弟,子节点整理

js获取节点 父: parentNode 获取已知节点的父节点. 子: childNodes; 得到全部子节点 children 得到全部子节点 firstChild 获得第一个子节点 lastChild 获得最后一个子节点 兄弟:previousSibling 获取已知节点的前一个节点 nextSibling 获取已知节点下一个节点 jq获取节点 父: $('#').parent() 获取上一级的父节点. $('#items').parents('.parent1')获取上面哪一级父节点都可以

5月25日-js操作DOM遍历子节点

一.遍历节点 遍历子节点 children();//获取节点的所有直接子类 遍历同辈节点 next(); prev(); siblings();//所有同辈元素 *find(); 从后代元素中查找匹配的 filter(); 过滤查找 each() 遍历节点 $("li").each(function(i,ele){ //alert($(ele).html()); }); 二.css DOM操作 三.表单校验 表单选择器

获取子元素节点(children,childNodes)

在js中获取元素节点有DOM对应的方法如getElementsByTagName()等等..对于获取子元素还有另外一种获取方法ChildNodes 不过ChidNodes在高级浏览器除(IE6-8)里面来说是"不太正常"的,因为它除了获取到了元素节点的同时也获取到了文本节点,这就是传说中的买一送一?不过,这个送一的活动咱们不想要的时候可以和nodeType结合,就可以进行筛选.代码如下 当然,这个判断是针对高级浏览器.IE6-8是不要进行nodeType的判断的,因为它本来获取的就是只

JS-DOM ~ 03. 子节点的操作、style.样式和属性、dom元素的创建方法及操作、14个例题、主要是利用js直接控制html属性

带有Element和不带的区别 a)  带Element的获取的是元素节点 b)  不带可能获取文本节点和属性节点 获取所以子节点 a)   . childNodes b)   . children c)   . parentNode . children [索引] . children:获取所有子节点 opacity:0-1:透明度 alpha(opacity:百分数):IE6/7/8透明度 先绑定事件再进行循环 previousNode()上一个兄弟节点 alert(变量名)可测试变量名是否

JS获取节点的兄弟,父级,子级元素

先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比. JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素 <div id="test"> <div></div> <div></div> </div> 原生的JS获取ID为test的元素下的子元素.可以用: var a = docuemnt.getElementById("

js下firstElementChild firstChild 以及childNodes和children方法

一. <div> <p>123</p> </div> 在上面这段代码中,如果使用以下js代码 var oDiv=document.getElementByTagName("div")[0]; alert(oDiv.firstChild.nodeName) 在ie9以下,alert出来的是p(p标签名字),但是在现代浏览器下,比如Chrome,FF,ie11等等,由于会把<div>   <p>两个标签之间的空白节点也

JS之获取子节点

在JS中获取子节点有以下几种方法: firstElementChild.firstChild.childNodes和children 我们通过一个例子来分析这几种方法的区别(获取div下的p标签) 输出结果是这样的: firstElementChild和Children 都成功获取到了p标签,那另外两个文本(#text)是什么东西呢? 其实是因为现在的标准浏览器会为空白符创建文本节点(标签之间换行或空格之类的都会产生空白符),而ie9以前的浏览器却不会. 我们知道DOM节点分为三大类 1.元素节

js jquery 获取元素(父节点,子节点,兄弟节点)

一,js 获取元素(父节点,子节点,兄弟节点) var test = document.getElementById("test"); var parent = test.parentNode; // 父节点 var chils = test.childNodes; // 全部子节点 var first = test.firstChild; // 第一个子节点 var last = test.lastChile; // 最后一个子节点 var previous = test.previ