一、通过javascript的遍历可以由一个节点来查找它的子节点(childNodes)、兄弟节点(nextSibling/previousSibling)和父节点(parentNode)。

代码说明:

<ul id="myul">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>

1、获取ul的所有子节点——childNodes

<script>
var ul=document.getElementById('myul');
for(var i=0;i<ul.childNodes.length;i++){
console.log(ul.childNodes[i]);
}
</script>

2、因为通过1获取了ul的所有的子节点,所以就可以直接通过childNodes来直接访问它里面的子节点

提醒:1、childNodes最后获得的是一个数组对象childNodes[i]    2、这里所获得的素有子节点也包括空白节点,看截图

所以,

访问第一个li: ul.childNodes[1]或者ul.childNodes.item(1)

第二个li: ul.childNodes[3]或者ul.childNodes.item(3)

第三个li: ul.childNodes[5]或者ul.childNodes.item(5)

第四个li: ul.childNodes[7]或者ul.childNodes.item(7)

3、访问到了第一个li,就可以通过第一个li节点来访问后面一个或者前面一个,那就是nextSibling/previousSibling

所以:

第二个li:ul.childNodes[1].nextSibling.nextSibling(不要忘了之间的空白节点);

第一个li:   ul.childNodes[3].previousSibling.previousSibling

4、当然我们也可以直接通过firstChild和lastChild来访问ul的第一个节点和第二个节点

5、访问到子节点,直接parentNode找到父节点

二、解决空白节点的问题

1、在js里面添加一个判断

<script>
var ul=document.getElementById('myul');
for(var i=0;i<ul.childNodes.length;i++){
if(ul.childNodes[i].nodeType==1){
console.log(ul.childNodes[i]);
}
}
</script>

这样控制台打印出的结果就是4个li子元素

2、还是上面的例子

获得所有li:  ul.children获得一个数组

第一个li:ul.children[0]或者ul.children.item(0)或者ul.firstElementChild;

兄弟li:nextElementSibling/previousElementSibling

最后一个li:lastElementChild

javascript DOM操作 节点的遍历的更多相关文章

  1. javascript DOM 操作基础知识小结

    经常用到javascript对dom,喜欢这方便的朋友也很多,要想更好的对dom进行操作,这些基础一定要知道的.   DOM添加元素,使用节点属性  <!DOCTYPE html PUBLIC ...

  2. javascript DOM 操作

    在javascript中,经常会需要操作DOM操作,在此记录一下学习到DOM操作的知识. 一.JavaScript DOM 操作 1.1.DOM概念 DOM :Document Object Mode ...

  3. javascript DOM 操作 attribute 和 property 的区别

    javascript DOM 操作 attribute 和 property 的区别 在做 URLRedirector 扩展时,注意到在使用 jquery 操作 checkbox 是否勾选时,用 at ...

  4. javascript DOM操作之 querySelector,querySelectorAll

    javascript DOM操作之 querySelector,querySelectorAll

  5. jQuery 中使用 DOM 操作节点,对页面中的表格实现增、删、查、改操作

    查看本章节 查看作业目录 需求说明: 在 jQuery 中使用 DOM 操作节点,对页面中的表格实现增.删.查.改操作 点击"增加"超链接时,将表格中的第一条数据添加到表格的末尾 ...

  6. javascript DOM操作HTML文档

    文档对象模型(DOM)是W3C为解决浏览器混战时代不同浏览器环境之间的差别而制定的模型标准.W3C将文档对象模型定义为:是一个能让程序和脚本动态 访问和更新文档内容.结构和样式的语言平台.提供了标准的 ...

  7. 仅100行的JavaScript DOM操作类库

    如果你构建过Web引用程序,你可能处理过很多DOM操作.访问和操作DOM元素几乎是每一个Web应用程序的通用需求.我们我们经常从不同的控件收集信息,我们需要设置value值,修改div或span标签的 ...

  8. JavaScript DOM操作浅谈

    1.理解DOM: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口. 怎么说,我从两个角度理解: 对于JavaScript ...

  9. dom操作节点之常用方法

    DOM:获取节点:{1. document.getElementById (元素id):通过元素id找到节点2. document.getElementsByClassName (元素类名classN ...

随机推荐

  1. eclipse快捷注释生成方法

    自动生成方法的注释格式,例如 /*** @param str* @return* @throws ParseException*/ 快捷键是alt+shift+j,将光标放在方法名上,按快捷键.会生成 ...

  2. Java经典编程题50道之三

    打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次 ...

  3. SpringMvc解决Restful中文乱码问题

    中文乱码问题解决方式: <!-- 解决中文乱码问题 --> <filter> <filter-name>CharacterEncodingFilter</fi ...

  4. 情景linux--如何优雅地退出telnet

    情景linux--在脚本中如何优雅地退出telnet 情景 telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式和会话模式.虽然telnet支持许多命令,但大部分情况下,我们只是使用 ...

  5. 【推荐】免费,19 款仿 Bootstrap 后台管理主题下载

    声明: 1. 本篇文章提到的仿 Bootstrap 风格的主题,是基于 jQuery 的 ASP.NET MVC 控件库的主题. 2. FineUIMvc(基础版)完全免费,可以用于商业项目. 目录 ...

  6. 使用java实现阿里云消息队列简单封装

    一.前言 最近公司有使用阿里云消息队列的需求,为了更加方便使用,本人用了几天时间将消息队列封装成api调用方式以方便内部系统的调用,现在已经完成,特此记录其中过程和使用到的相关技术,与君共勉. 现在阿 ...

  7. PCI9054 DMA设置流程

    1.设置方式寄存器:设置DMA通道的传输方式,寄存器DMAMODE0或者DMAMODE1的位9:0-表示块传输,1-表示散/聚传输: 2.设置PCI地址寄存器:设置PCI总线侧的地址空间. 3.设置L ...

  8. GNU C 扩展之__attribute__ 机制简介

    在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关__attribute__的相关使用.本文结合自己的学习经历,较为详细的介绍了__attribute__相关语法及 ...

  9. JAVA之编码---->CSV在文本下是正常的,用EXCEL打开是乱码的问题

    JAVA之编码---->CSV在文本下是正常的,用EXCEL打开是乱码的问题 在JAVA下输出文件流,保存成CSV(用UTF-8)文件,怎么处理用EXCEL下是乱码,但是在记事本等其他软件都是正 ...

  10. dojo中表格行隐藏出错

    1.错误描述 TypeError:role._by_idx[e.rowIndex].hide is not a function           (54 out of range 3) 2.错误原 ...