JQuery遍历DOM节点的方法


Posted in Javascript onJune 11, 2015

本文实例讲述了JQuery遍历DOM节点的方法。分享给大家供大家参考。具体分析如下:

本节的核心是介绍JQuery的DOM操作,前面介绍了很多创建、删除、替换等等节点操作。这里介绍如何遍历节点,选中临近节点等的一些方法。

children()方法

该方法用于取得匹配元素的子元素集合。根据DOM树的结构,可以知道各个元素之间的关系以及它们子节点的个数。

下面使用children()方法来获取匹配元素的所有子元素的个数。

var $body = $("body").children(); 
var $p = $("p").children(); 
var $ul = $("ul").children(); 
alert( $body.length ); // <body>元素下有2个子元素 
alert( $p.length );  // <p>元素下有0个子元素 
alert( $ul.length ); // <p>元素下有3个子元素 
for(var i=0;i< $ul.length;i++){ 
  alert( $ul[i].innerHTML ); 
}

PS:children()方法只考虑子元素而不考虑任何后代元素。

next()方法

该方法用于取得匹配元素后面紧邻的同辈元素。从DOM树的结构中可以知道p元素的下一个同辈节点是ul,因此可以通过next()方法来获取ul元素,代码如下:

var $p1 = $("p").next();
// 紧邻p元素后的同辈元素

prev()方法

该方法用于取得匹配元素前面紧邻的同辈元素。从DOM树的结构中可以知道ul元素的上一个同辈节点是p,因此可以通过prev()方法来获取p元素,代码如下:

var $ul = $("ul").prev();
// 紧邻ul元素前的同辈元素

siblings()方法

该方法用于取得匹配元素前后所有的同辈元素。以DOM树的结构为例。ul元素和p元素互为同辈元素,ul元素下的3个li元素也互为同辈元素。

如果要获取p元素的同辈元素,则可以使用如下代码:

var $p2 = $("p").siblings();
// 紧邻p元素的唯一同辈元素

closest()方法

它用来取得最近的匹配元素。首先检查当前元素是否匹配,如果匹配则直接返回元素本身。如果不匹配则向上查找父元素,逐级向上直到找到匹配选择器的元素。如果什么都没找到则返回一个空的JQuery对象。

比如,给点击的目标元素的最近的li元素添加颜色,可以使用如下代码:

$(document).bind("click", function (e) { 
 $(e.target).closest("li").css("color","red"); 
})

除此之外,在JQuery中还有很多遍历节点的方法,例如find()、filter()、nextAll()、prevAIl()、parent()和parents()等,此处不再赘述,读者可以查看附录的JQuery速查表文档。值得注意的是,这些遍历DOM方法有一个共同点,都可以使用JQuery表达式作为它们的参数来筛选元素。

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
jQuery 改变CSS样式基础代码
Feb 11 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
Dec 27 Javascript
Jquery操作js数组及对象示例代码
May 11 Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 Javascript
JS简单实现String转Date的方法
Mar 02 Javascript
jquery点赞功能实现代码 点个赞吧!
May 29 jQuery
ionic2屏幕适配实现适配手机、平板等设备的示例代码
Aug 11 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
Sep 12 Javascript
详解webpack运行Babel教程
Jun 13 Javascript
js防抖和节流的深入讲解
Dec 06 Javascript
JavaScript实现滑动门效果
Jan 18 Javascript
Vue设置长时间未操作登录自动到期返回登录页
Jan 22 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 #Javascript
简介JavaScript中的setDate()方法的使用
Jun 11 #Javascript
JQuery实现样式设置、追加、移除与切换的方法
Jun 11 #Javascript
在JavaScript中操作时间之getYear()方法的使用教程
Jun 11 #Javascript
JavaScript中getUTCSeconds()方法的使用详解
Jun 11 #Javascript
JQuery节点元素属性操作方法
Jun 11 #Javascript
JQuery包裹DOM节点的方法
Jun 11 #Javascript
You might like
PHP+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
探讨如何把session存入数据库
2013/06/07 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
js的写法基础分析
2011/01/17 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
基于Django模板中的数字自增(详解)
2017/09/05 Python
python实现简单成绩录入系统
2019/09/19 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
专业实习自我鉴定
2013/10/29 职场文书
个人自荐信
2013/12/05 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
Python WSGI 规范简介
2021/04/11 Python
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android