jQuery常用的查询Dom方法归纳

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

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

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

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

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

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

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

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

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

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

四. 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

时间: 2024-11-06 03:37:10

jQuery常用的查询Dom方法归纳的相关文章

Criteria Query常用的查询限制方法

 Restrictions.like(属性名, 查询条件的值, 匹配方式): Restrictions.in(属性名, 查询条件的值, 匹配方式): Restrictions.eq(属性名, 查询条件的值, 匹配方式): CriteriaQuery常用的查询限制方法 Restrictions.eq() equal,= Restrictions.allEq() 参数为Map对象,使用key/value进行多个等于的对比,相当于多个Restrictions.eq()的效果 Restriction

jQuery常用的元素查找方法总结

$("#myELement")    选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素$("div")           选择所有的div标签元素,返回div元素数组$(".myClass")      选择使用myClass类的css的所有元素$("*")             选择文档中的所有的元素,可以运用多种的选择方式进行联合选择:例如$(&q

HTML DOM 方法

方法是我们可以在节点(HTML 元素)上执行的动作. 编程接口 可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问. 所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性. 方法是您能够执行的动作(比如添加或修改元素). 属性是您能够获取或设置的值(比如节点的名称或内容). getElementById() 方法 getElementById() 方法返回带有指定 ID 的元素: 例子 <!DOCTYPE html> <html> <

jQuery常用的方法和标签总结01(有代码示例)

//jQuery的优点 :         1 轻量级        2 强大的选择器        3 出色的DOM操作的封装        4 可靠的事件处理机制        5 完善的Ajax        6 不污染顶级变量        7 出色的浏览器兼容性        8 链式操作方式        9 隐式迭代        10 行为曾与结构层的分离        11 丰富的插件支持        12 完善的文档        13 开源 <script src="

DOM与JQuery 常用属性

DOM 与 JQuery 与 HTML5 事件 DOM: document.getElementById('btn ').onclick = function(){ }; jQuery: $('#btn').click(function(){ });  ---> 添加事件没有on 对象.事件名(匿名函数); jQuery对象转DOM对象 jQuery对象[0].value(); jQuery对象.get(0).value(); this this     $(this) 获取值 DOM: .va

ExtJs007最常用的查询方法

1 Ext.onReady(function () { 2 3 Ext.create('Ext.panel.Panel', { 4 title: '我的面板', 5 width: '100%', 6 height: 400, 7 renderTo: Ext.getBody(), 8 html: '<div id=d1><span id=sp>我是sp的内容</span><div id=d2>我是d2的内容</div></div><

JQuery常用实用的事件[较容易忽略的方法]

       JQuery常用实用的事件 注:由于JQuery片段较多就没有用插入代码文本插入,请见谅!JQuery 事件处理ready(fn)代码:   $(document).ready(function(){   });作用:它可以极大地提高web应用程序的响应速度.通过使用这个方法,可以在DOM载入就绪能够读取并操 纵时立即调用你所绑定的函数,而99.99%的JavaScript函数都需要在那一刻执行. bind(type.[data],fn)代码: $("p").bind(&

js与jquery常用数组方法总结

转载:http://www.cnblogs.com/codetker/p/4676899.html 昨天被问数组方法的时候,问到sort()方法是否会改变原来的数组.本来我猜是不会,也是这么说,马上我又觉得,知识这种东西,不确定的时候直接说不确定或不知道就好,只是凭借着不确定的猜测或者是记忆,害人害己,于是我又回答不知道.结果果然...我记错了0.0 还是自己总结测试一下比较靠谱,印象也比较深刻.欢迎大家提出相关意见或建议,提前谢谢哈~ 一.原生js方法 1.遍历数组 in(同时也是对象遍历属性

jQuery常用dom操作

操作属性节点(type属性不支持修改和删除) attr('name')——取值(如果jq对象是多个,则只取得第一个值,例如:$('.class').attr('name')——只获得第一个class的name属性值) attr('name','value')——赋值 如果参数是json对象,那么则会同时修改多个属性值,例如:var kv = {name:'username',value:'tom'}; $('#username').attr(kv); 还可以通过函数的返回值来修改属性值,例如:$