JQuery入門(二)JQuery選擇器
前言
本章講解JQuery選擇器的相關知識
方法
1.概念
通過前面的學習,我們把jquery的js檔案下載了下來,當時下載的是一個壓縮版,也就是專案上線用到的版本。這裡我們為了說明方便我們下載一個開發版來進行學習。
jquery選擇器,相信大家不會陌生css的選擇器吧,其實道理是一樣的,可以快速的定位html的元素物件,不再需要以前的document.getElementById()等等等等。
2.選擇器的學習
本節的樣例html程式碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>JQuery</title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> </script> </head> <body> <div> <form action="#" method="post" id="ff"> <h5>註冊資訊</h5> 使用者名稱:<input type="text" name="username" id="username" value=""/><span id="usernameSpan"></span><br/> 性 別:<input type="radio" name="sex" value="男" checked="checked"/>男<input type="radio" name="sex" value="女"/>女<span></span><br/> 愛 好:<input type="checkbox" name="hobby" value="足球" />足球<input type="checkbox" name="hobby" value="游泳"/>游泳 <input type="checkbox" name="hobby" value="棋牌" />棋牌<span></span><br/> 畢業院校:<select name="school" id="school" class="sd"> <option value="--請選擇--">--請選擇--</option> <option value="清華大學">清華大學</option> <option value="北京大學">北京大學</option> <option value="挖掘機技術學院">挖掘機技術學院</option> </select><span></span><br/> 個人簡介:<textarea rows="3" cols="20" name="introduce" id="introduce"></textarea><span></span><br/> <input type="button" value="提交" onclick="sub();"/> <input type="reset" name="" id="" value="重置" /> </form> </div> </body> </html>
1)id選擇器
語法:$(#id)
例項:使用id選擇器獲取使用者名稱input標籤元素
$(function(){
//使用JQuery的id選擇器獲取使用者名稱input元素
console.log($("#username"));
});
特別的:$(function(){程式碼});語句體代表的是當頁面完全載入完畢之後執行該語句
console.log(變數);代表的是在瀏覽器控制檯輸出該變數的值,這與以往的alert(變數)方法檢視的方式有所不同,前者更加友好!
特別的:我們可以用元素物件.val()方法來獲取該元素的value值
使用元素物件.attr(屬性名稱)來獲取元素物件的屬性值
2)元素選擇器
語法:$(元素名)
例項:獲取個人簡介的textarea元素物件
$(function(){
console.log($("textarea"));
});
特別的:我們發現如果有多個相同的元素物件,獲取之後會是一個數組,其擁有length屬性,標記了其元素個數
3)class選擇器
語法:$(.class名稱)
例項:獲取class為sd的元素物件
$(function(){
console.log($(".sd"));
});
4)組合選擇器
語法:$(selector1,selector2,selector3...)
例項:獲取以上三個例項的物件
$(function(){
console.log($("#username,textarea,.sd"));
});
5)層級選擇器(子選擇器)
語法:$(父節點 子節點)
例項:獲取id為ff下的h5標籤物件
$(function(){
console.log($("#ff h5"));
});
6)層級選擇器(指定的子選擇器)
語法:$(父節點).eq(num)
例項:獲取id為ff下的第二個input元素物件(num角標由0開始)
$(function(){
console.log($("#ff input").eq(1));
});
7)定位選擇器
語法 :$(節點描述1節點描述2....)
例項:獲取class屬性為sd的select標籤物件
$(function(){
console.log($("select.sd"));
});
8)屬性選擇器
語法:$("[屬性='屬性值']")
例項:獲取type屬性為radio的元素物件
$(function(){
console.log($("[type='radio']"));
});
以上為使用率特別高的選擇器語法知識,必須要會!
下面是全部的選擇器語法,學有餘力的同學可以進行參考
附錄:JQuery選擇器大全
選擇器 | 例項 | 選取 |
---|---|---|
* | $("*") | 所有元素 |
#id | $("#lastname") | id="lastname" 的元素 |
.class | $(".intro") | class="intro" 的所有元素 |
.class,.class | $(".intro,.demo") | class 為 "intro" 或 "demo" 的所有元素 |
element | $("p") | 所有 <p> 元素 |
el1,el2,el3 | $("h1,div,p") | 所有 <h1>、<div> 和 <p> 元素 |
:first | $("p:first") | 第一個 <p> 元素 |
:last | $("p:last") | 最後一個 <p> 元素 |
:even | $("tr:even") | 所有偶數 <tr> 元素,索引值從 0 開始,第一個元素是偶數 (0),第二個元素是奇數 (1),以此類推。 |
:odd | $("tr:odd") | 所有奇數 <tr> 元素,索引值從 0 開始,第一個元素是偶數 (0),第二個元素是奇數 (1),以此類推。 |
:first-child | $("p:first-child") | 屬於其父元素的第一個子元素的所有 <p> 元素 |
:first-of-type | $("p:first-of-type") | 屬於其父元素的第一個 <p> 元素的所有 <p> 元素 |
:last-child | $("p:last-child") | 屬於其父元素的最後一個子元素的所有 <p> 元素 |
:last-of-type | $("p:last-of-type") | 屬於其父元素的最後一個 <p> 元素的所有 <p> 元素 |
:nth-child(n) | $("p:nth-child(2)") | 屬於其父元素的第二個子元素的所有 <p> 元素 |
:nth-last-child(n) | $("p:nth-last-child(2)") | 屬於其父元素的第二個子元素的所有 <p> 元素,從最後一個子元素開始計數 |
:nth-of-type(n) | $("p:nth-of-type(2)") | 屬於其父元素的第二個 <p> 元素的所有 <p> 元素 |
:nth-last-of-type(n) | $("p:nth-last-of-type(2)") | 屬於其父元素的第二個 <p> 元素的所有 <p> 元素,從最後一個子元素開始計數 |
:only-child | $("p:only-child") | 屬於其父元素的唯一子元素的所有 <p> 元素 |
:only-of-type | $("p:only-of-type") | 屬於其父元素的特定型別的唯一子元素的所有 <p> 元素 |
parent > child | $("div > p") | <div> 元素的直接子元素的所有 <p> 元素 |
parent descendant | $("div p") | <div> 元素的後代的所有 <p> 元素 |
element + next | $("div + p") | 每個 <div> 元素相鄰的下一個 <p> 元素 |
element ~ siblings | $("div ~ p") | <div> 元素同級的所有 <p> 元素 |
:eq(index) | $("ul li:eq(3)") | 列表中的第四個元素(index 值從 0 開始) |
:gt(no) | $("ul li:gt(3)") | 列舉 index 大於 3 的元素 |
:lt(no) | $("ul li:lt(3)") | 列舉 index 小於 3 的元素 |
:not(selector) | $("input:not(:empty)") | 所有不為空的輸入元素 |
:header | $(":header") | 所有標題元素 <h1>, <h2> ... |
:animated | $(":animated") | 所有動畫元素 |
:focus | $(":focus") | 當前具有焦點的元素 |
:contains(text) | $(":contains('Hello')") | 所有包含文字 "Hello" 的元素 |
:has(selector) | $("div:has(p)") | 所有包含有 <p> 元素在其內的 <div> 元素 |
:empty | $(":empty") | 所有空元素 |
:parent | $(":parent") | 匹配所有含有子元素或者文字的父元素。 |
:hidden | $("p:hidden") | 所有隱藏的 <p> 元素 |
:visible | $("table:visible") | 所有可見的表格 |
:root | $(":root") | 文件的根元素 |
:lang(language) | $("p:lang(de)") | 所有 lang 屬性值為 "de" 的 <p> 元素 |
[attribute] | $("[href]") | 所有帶有 href 屬性的元素 |
[attribute=value] | $("[href='default.htm']") | 所有帶有 href 屬性且值等於 "default.htm" 的元素 |
[attribute!=value] | $("[href!='default.htm']") | 所有帶有 href 屬性且值不等於 "default.htm" 的元素 |
[attribute$=value] | $("[href$='.jpg']") | 所有帶有 href 屬性且值以 ".jpg" 結尾的元素 |
[attribute|=value] | $("[title|='Tomorrow']") | 所有帶有 title 屬性且值等於 'Tomorrow' 或者以 'Tomorrow' 後跟連線符作為開頭的字串 |
[attribute^=value] | $("[title^='Tom']") | 所有帶有 title 屬性且值以 "Tom" 開頭的元素 |
[attribute~=value] | $("[title~='hello']") | 所有帶有 title 屬性且值包含單詞 "hello" 的元素 |
[attribute*=value] | $("[title*='hello']") | 所有帶有 title 屬性且值包含字串 "hello" 的元素 |
[name=value][name2=value2] | $( "input[id][name$='man']" ) | 帶有 id 屬性,並且 name 屬性以 man 結尾的輸入框 |
:input | $(":input") | 所有 input 元素 |
:text | $(":text") | 所有帶有 type="text" 的 input 元素 |
:password | $(":password") | 所有帶有 type="password" 的 input 元素 |
:radio | $(":radio") | 所有帶有 type="radio" 的 input 元素 |
:checkbox | $(":checkbox") | 所有帶有 type="checkbox" 的 input 元素 |
:submit | $(":submit") | 所有帶有 type="submit" 的 input 元素 |
:reset | $(":reset") | 所有帶有 type="reset" 的 input 元素 |
:button | $(":button") | 所有帶有 type="button" 的 input 元素 |
:image | $(":image") | 所有帶有 type="image" 的 input 元素 |
:file | $(":file") | 所有帶有 type="file" 的 input 元素 |
:enabled | $(":enabled") | 所有啟用的元素 |
:disabled | $(":disabled") | 所有禁用的元素 |
:selected | $(":selected") | 所有選定的下拉列表元素 |
:checked | $(":checked") | 所有選中的複選框選項 |
.selector | $(selector).selector | 在jQuery 1.7中已經不被贊成使用。返回傳給jQuery()的原始選擇器 |
:target | $( "p:target" ) | 選擇器將選中ID和URI中一個格式化的識別符號相匹配的<p>元素 |