1. 程式人生 > >jQuery基礎筆記(2)

jQuery基礎筆記(2)

day54

篩選器

參考:https://www.cnblogs.com/liwenzhou/p/8178806.html#autoid-1-7-5

篩選器方法

下一個元素:

$("#id").next()
$("#id").nextAll()
$("#id").nextUntil("#i2")

上一個元素:

$("#id").prev()
$("#id").prevAll()
$("#id").prevUntil("#i2")

 

舉例:

<ul>
    <li id="l0">l0</li>
    <li>
l1</li> <li>l2</li> <li id="l3">l3</li> <li>l4</li> <li>l5</li> </ul>

實踐:

 

父親元素:

$("#id").parent()
$("#id").parents()  // 查詢當前元素的所有的父輩元素
$("#id").parentsUntil() // 查詢當前元素的所有的父輩元素,直到遇到匹配的那個元素為止。

找父標籤

<!--父標籤-->
<div id="d1">div-1 <div id="d2">div-2 <div id="d3">div-3 <a href="">a標籤</a> </div> </div> </div>

實踐:

parents()、parentsUntil()作用看註釋可知。

兒子和兄弟元素:

$("#id").children();// 兒子們
$("#id").siblings();// 兄弟們

示例:

<!--
兄弟和兒子--> <div id="dd"> <p>p0</p> <p>p1</p> <p id="p2">p2</p> <p>p3</p> </div>

實踐:

查詢

搜尋所有與指定表示式匹配的元素。這個函式是找出正在處理的元素的後代元素的好方法。

$("div").find("p")

等價於$("div p")

 

篩選

篩選出與指定表示式匹配的元素集合。這個方法用於縮小匹配的範圍。用逗號分隔多個表示式。

$("div").filter(".c1")  // 從結果集中過濾出有c1樣式類的

等價於 $("div.c1")

操作標籤

樣式操作

樣式類

addClass();// 新增指定的CSS類名。
removeClass();// 移除指定的CSS類名。
hasClass();// 判斷樣式存不存在 toggleClass();// 切換CSS類名,如果有就移除,如果沒有就新增。

示例:

<div id="dd">
    <p>p0</p>
    <p>p1</p>
    <p id="p2">p2</p>
    <p>p3</p>
</div>

實踐:

應用toggleClass():、

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>樣式操作示例</title>
    <style>
        .c1 {
            height: 200px;
            width: 200px;
            border-radius: 50%;
            background-color: red;
        }
        .c2 {
            background-color: green;
        }
    </style>
</head>
<body>

<div class="c1"></div>

<script src="jquery-3.2.1.min.js"></script>
<script>
    // 找標籤
    $("div.c1").click(function () {
        // console.log(this);  // this是DOM物件,轉為jQuery物件才能使用jQuery方法
        $(this).toggleClass("c2"); // 有就刪掉 沒有就加上
    })
</script>
</body>
</html>

 divEle2.onclick=function () { this.innerText="呵呵"; }      divEle2是DOM物件。

 

應用:

展開點選的欄目

 

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>左側選單作業分解</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        ul {
            list-style-type: none;
        }

        .hide {
            display: none;
        }
    </style>
</head>
<body>

<div class="left-menu">
    <div class="menu-title">選單一</div>
    <div class="menu-items">
        <ul>
            <li><a href="">111</a></li>
            <li><a href="">222</a></li>
            <li><a href="">333</a></li>
        </ul>
    </div>
    <div class="menu-title">選單二</div>
    <div class="menu-items hide">
        <ul>
            <li><a href="">111</a></li>
            <li><a href="">222</a></li>
            <li><a href="">333</a></li>
        </ul>
    </div>
    <div class="menu-title">選單三</div>
    <div class="menu-items hide">
        <ul>
            <li><a href="">111</a></li>
            <li><a href="">222</a></li>
            <li><a href="">333</a></li>
        </ul>
    </div>
</div>

<script src="jquery-3.2.1.min.js"></script>
<script>
    // 需求分析
    // 找到所有的.menu-title標籤,繫結點選事件
        $(".menu-title").click(function () {
               // 點選事件具體要做的事兒
        // 1. 找到當前點選選單下面的.menu-items,把它顯示出來(移除hide類)
//            $(this).next().removeClass("hide");
            $(this).next().toggleClass("hide");
            // 2. 把其他的.menu-items隱藏,新增hide類
            $(this).next().siblings(".menu-items").addClass("hide"); //把其他都隱藏
        })


//    $(".menu-title").click(function () {
//        // 1. 找到所有的.menu-items, 隱藏
//        var $currMenuitem = $(this).next();
//        $(".menu-items").not($currMenuitem).addClass("hide");  // 所有的二級選單都是隱藏的
//        // 2. 找到當前點選選單下面的.menu-items,把它顯示出來(移除hide類)
//        $(this).next().toggleClass("hide");
//    })

</script>
</body>
</html>

 

效果: