废话不多说,先来个总结,然后下面是demo

一. 同级节点之间的检索(检索深度N=0)

next()是在兄弟节点中,往后匹配;

prev()是在兄弟节点中,往前匹配。

二. 父级/子级节点的检索(检索深度N=1)

children()是在子节点中,往后匹配。

parent()是在父节点中,往前匹配。

ps:请注意了---子节点和父节点都是相邻的,深度为1的节点,也就是标题提到的检索深度为1

三. 后代节点的检索(检索深度N>=1)

find()检索的是子代元素和后代元素,不会检索兄弟节点。

parents() 检索的是祖辈元素(包括父元素)的集合。

closest()检索的是最近的祖辈元素(一个)

ps:当往上级检索节点的时候,推荐使用closet,效率更高!

四. demo

HTML代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
</head>
<body>
<div class="out" id="t1">
<div class="level1" id="t2">
<span class="title1" id="t3"></span><span class="title2" id="t4"></span>
</div>
<ul class="menu" id="t6">
<li class="item1" id="t7"></li>
<span class="item2" id="t8"></span>
<li class="item3" id="t9"></li>
</ul> <div class="level1" id="t10">
<span class="title1" id="t11"></span><span class="title2" id="t12"></span>
</div>
<ul class="menu" id="t14">
<span class="item1" id="t15"></span>
<li class="item2" id="t16"></li>
<span class="item3" id="t17"></span>
</ul>
</div>
</body>
</html>

JS测试代码如下:

    <script type="text/javascript" src="../js/lib/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(function () {
testNext();
testChildren();
testFind();
testPre();
testParent();
}); //测试next。
function testNext() {
var $result = $(".level1").next("ul");
console.info(getTagsInfo($result)); //结果是:["UL#t6", "UL#t14"]
} //测试Children
function testChildren() {
var $result = $(".level1").children("span");
console.info(getTagsInfo($result));//结果是:["SPAN#t3", "SPAN#t4", "SPAN#t11", "SPAN#t12"]
} //测试Find
function testFind() {
var $result = $(".out").find("span");
console.info(getTagsInfo($result));//结果是: ["SPAN#t3", "SPAN#t4", "SPAN#t8", "SPAN#t11", "SPAN#t12", "SPAN#t15", "SPAN#t17"]
} //pre是next的方面,检索的是同级元素。
function testPre() {
var $result = $("#t12").prev("span");
console.info(getTagsInfo($result));//结果是:["SPAN#t11"]
} //parent是和children相对的,检索的上一级别的父元素
function testParent() {
var $result = $(".title1").parent("div");
console.info(getTagsInfo($result));//结果是:["DIV#t2", "DIV#t10"]
} //输出匹配到的元素的id
function getTagsInfo($doms) {
return $doms.map(function () {
return this.nodeName + "#" + this.id;
}).get();
}
</script>

相关源代码:http://yunpan.cn/c3eL2PdJiqMZ3  访问密码 47eb

jQuery常用的查找Dom元素方法的更多相关文章

  1. JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分)

    JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分) 1.匹配属性的开头 $("[attributeName^='value']"); 2.匹配属性的结尾 ...

  2. jQuery DOM 元素方法(get)

    jQuery DOM 元素方法 1..get() 获得由选择器指定的 DOM 元素. $(selector).get(index)index 可选.规定获取哪个匹配元素(通过 index 编号). 实 ...

  3. Jsoup(二)-- Jsoup查找DOM元素

    一.Jsoup查找DOM元素的方法 getElementById(String id) 根据id 来查询DOM getElementsByTag(String tagName) 根据tag 名称来查询 ...

  4. (三)Jsoup 使用选择器语法查找 DOM 元素

    第一节: Jsoup 使用选择器语法查找 DOM 元素 Jsoup使用选择器语法查找DOM元素 我们前面通过标签名,Id,Class样式等来搜索DOM,这些是不能满足实际开发需求的, 很多时候我们需要 ...

  5. (二)Jsoup 查找 DOM 元素

    第一节: Jsoup 查找 DOM 元素 getElementById(String id) 根据 id 来查询 DOM getElementsByTag(String tagName) 根据 tag ...

  6. Jquery 方式获取 iframe Dom元素

    Jquery 方式获取 iframe Dom元素 測试页面代码: <html>  <head>   <title>jquery方式,訪问iframe页面dom元素& ...

  7. JS1 js获取dom元素方法

     js获取dom元素方法  1.通过ID选取元素(getElementById) 1)使用方法:document.getElementById("domId")         其 ...

  8. jQuery DOM 元素方法 - index() 方法

    元素的 index,相对于选择器 获得元素相对于选择器的 index 位置. 该元素可以通过 DOM 元素或 jQuery 选择器来指定. 语法 $(selector).index(element) ...

  9. jQuery DOM 元素方法 (十)

    函数 描述 .get() 获得由选择器指定的 DOM 元素. .index() 返回指定元素相对于其他指定元素的 index 位置. .size() 返回被 jQuery 选择器匹配的元素的数量. . ...

随机推荐

  1. Inno Setup入门(三)——指定压缩方式

    Setup段中的compression指定了采用的压缩方式,较高的压缩率需要较多的时间或者需要更大的内存空间,可用的值如下: zip zip/1到zip/9 bzip bzip/1 到bzip/9 l ...

  2. iptables-1.4.19 移植到linux

    ------------------------------------------------------------------------------------------ https://g ...

  3. Augular JS里的各种ng

    Augular JS里的各种ng- 正文: 1.ng-disabled="一种状态:该状态下不可用"例如: %button.btn.btn-2(ng-disabled=" ...

  4. Java学习笔记之自定义异常

    1.自定义异常类: /** * 自定义异常,只要继承继承Exception类或其子类即可 * @author Administrator * */ public class FileException ...

  5. 百度,google的地理编码

    1.百度的地理编码:(不支持中国以外的其它城市) http://api.map.baidu.com/geocoder/v2/?ak=E974997f80db18330f8f5c61d084a677&a ...

  6. MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法

    在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应 ...

  7. web项目docker化的两种方法

    标题所讲的两种方法其实就是创建docker镜像的两种方法 第一种:启动镜像后进入容器中操作,将需要的软件或者项目移动到容器中,安装或者部署,然后退出即可 第二种:编写dockerfile,将需要的镜像 ...

  8. gvim work notes.. a few days' work on 64bit vim and plugin compilations

    (a 600MB+ sized c/c++ compiler which is capable of hi-light and JB styled completion!! and of-course ...

  9. Android中图片占用内存的计算

    Android中图片占用内存的计算 原文链接 http://blog.sina.com.cn/s/blog_4e60b09d01016133.html   在Android开发中,我现在发现很多人还不 ...

  10. 在TTF字体中提取想要的文字

    工具地址:https://yunpan.cn/cSLhX5jXnxFZg  访问密码 8000 1. 确保你的电脑已经安装了Java环境(能运行Java命令),这是必须的. 2.复制要提取的源字体(j ...