整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          前端:詳解jQuery選擇器基本語法格式和優勢

          過CSS選擇器獲取元素的方式是非常靈活的,但是CSS選擇器獲取元素后只能操作該元素的樣式,要想為元素添加行為(如處理單擊事件),還需要通過JavaScript代碼來實現。為此,jQuery 模仿CSS選擇器實現了jQuery選擇器,通過jQuery選擇器來獲取元素,不僅讓獲取元素的方式更加多樣化,而且可以在獲取元素后為元素添加行為。

          jQuery選擇器的基本語法格式如下所示。

          $(selector);

          上述代碼中,selector代表jQuery選擇器,代碼執行后,返回一個jQuery對象。

          接下來通過與CSS選擇器對比的方式演示jQuery選擇器的基本用法。具體操作步驟如下所示。

          (1)準備頁面結構

          <div id="myDiv">我是一個div</div>


          (2)通過CSS添加樣式

          #myDiv {
              border: 1px solid black;
          }

          上述代碼中,使用CSS選擇器獲取id值為myDiv的div元素,并為div元素添加樣式,頁面效果如下圖所示。


          (3)通過jQuery添加樣式

          在不使用CSS代碼的情況下,使用jQuery代碼也可以實現和上圖相同的效果,如下所示。

          $('#myDiv').css('border', '1px solid black');

          上述代碼中,使用jQuery選擇器獲取id值為myDiv的div元素,然后調用jQuery的css()方法為該元素添加樣式。 需要注意的是,使用jQuery選擇器獲取元素后,由于返回的是jQuery對象,所以不僅能為元素添加樣式,而且支持為元素添加行為。例如,為元素綁定事件、操作元素屬性等操作。此處只要了解jQuery選擇器的使用即可。

          jQuery選擇器的優勢

          不使用jQuery選擇器的情況下,開發者經常通過JavaScript來獲取DOM元素,示例代碼如下所示。

          // 根據id值獲取元素
          document.getElementById('id的值');
          // 根據元素的名稱獲取元素
          document.getElementsByTagName('元素的名稱');

          與上述代碼不同的是,jQuery 選擇器獲取元素對象的方式更加簡潔,如下所示。

          // 根據id值獲取元素
          $('#id的值');
          // 根據元素的名稱獲取元素
          $('元素的名稱');

          實際上jQuery選擇器的出現不僅是為了簡化JavaScript的寫法,也是由于JavaScript提供的選擇DOM的方式較少,難以滿足實際開發的眾多需求。因此,jQuery 選擇器中提供了更多選擇DOM的方式,支持從CSS1到CSS3所有的選擇器以及其他常用的選擇器。

          $('p') :元素選擇器,使用 CSS 選擇器來選取 HTML 元素。
          $(".test") :.class 選擇器 可以通過指定的 class 查找元素。
          $("#test") :#id 選擇器通過 HTML 元素的 id 屬性選取指定的元素。
          $("[href]") :屬性選擇器,選取所有帶有 href 屬性的元素。比如$("[href='#']") 選取所有帶有 href 值等于 "#" 的元素。$("[href!='#']") 選取所有帶有 href 值不等于 "#" 的元素。$("[href$='.jpg']")選取所有 href 值以 ".jpg" 結尾的元素。
           
          2、jQuery支持的css3基本選擇器
          語法描述$("*")選取所有元素$(this)選取當前 HTML 元素$("p.intro")選取 class 為 intro 的 <p> 元素$("p:first")選取第一個 <p> 元素$("ul li:first")選取第一個 <ul> 元素的第一個 <li> 元素$("ul li:first-child")選取每個 <ul> 元素的第一個 <li> 元素$("[href]")選取帶有 href 屬性的元素$("a[target='_blank']")選取所有 target 屬性值等于 "_blank" 的 <a> 元素$("a[target!='_blank']")選取所有 target 屬性值不等于 "_blank" 的 <a> 元素$(":button")選取所有 type="button" 的 <input> 元素 和 <button> 元素$("tr:even")選取偶數位置的 <tr> 元素$("tr:odd")選取奇數位置的 <tr> 元素
           
          選擇器說明*、E、E F、E。C、E#I等CSS1選擇器通配符、標記選擇器,后代選擇器,交集選擇器,ID選擇器等CSS1中的選擇器E>F子選擇器,只選中第一代E+F所有名稱為F的標記,并且該標記緊接著前面的E標記,下一個兄弟元素E~F所有名稱為F的標記,如果F和E是兄弟關系,并且F位于E后面(不需要緊跟E)E:has(F)所有名稱為E的標記,并且該標記包含F標記E[A]所有名稱為E的標記,并且具有屬性AE[A=V]所有名稱為E的標記,并且屬性A的值等于VE[A^=V]所有名稱為E的標記,并且屬性A的值以V開頭E[A$=V]所有名稱為E的標記,并且屬性A的值以V結尾E[A*=V]所有名稱為E的標記,并且屬性A的值包含V
           
          3、css3基本選擇器中可細分出層次選擇器
          通過DOM元素之間的層次關系來獲取特定元素,例如后代元素,子元素,相鄰元素和同輩元素等。
          $("ancestor descendant"):選取ancestor元素里的所有descendant元素。
          例:$("div span")選取<div>里的所有的<span>元素。
          $("parent>child")選取parent元素下的child元素,與$("ancestor descendant")的區別是$("ancestor descendant")選取的是后代元素。
          例:$("div >span")選取<div>下元素名是<span>的子元素。
          $("prev+next")選取緊接在prev元素后面的next元素。
          例:$(".one+div")選取class為one的下一個<div>同輩元素。
          $("prev~siblings")選取prev元素之后的所有siblings元素。
          例:$("#two~div")選取id為two的元素后面所有<div>同輩元素。
          注意:
          jquery中next()來代替$("prev+next")選擇器。
          jquery中nextAll()來代替$("prev~siblings")選擇器。
          $("prev~siblings")和jquery中siblings()的區別:
          $("prev~siblings")只能選中"prev"后面的同輩<div>元素。
          siblings()與前后位置無關,只有是同輩節點就都能匹配。
          CSS位置選擇器
          目的:基于元素的位置選擇元素,又不局限于此。
          語法:jQuery的位置選擇器借鑒了css中偽類的語法,即選擇器以冒號(:)開始,可以看做是CSS為類的一種擴展。
          jQuery支持的CSS3位置選擇器選擇器說明:first第一個元素,例如div p:first選中頁面中所有p元素的第一個,且該p元素是div的子元素:last最后一個元素,例如div p:last選中頁面中所有p元素的最后一個,且該p元素是div的子元素:first-child第一個子元素,例如ul:first-child選中所有的ul元素,且該ul元素是其父元素的第一個子元素:last-child最后一個子元素,例如ul:last-child選中所有的ul元素,且該ul元素是其父元素的最后一個子元素:only-child 所有沒有兄弟的子元素,例如p:only-child選中所有的p元素,如果該p元素是其父元素的唯一子元素:nth-child(n)第n個子元素,例如li:nth-child(3)選中所有li元素,且該li元素是其父元素的第3個子元素(從1開始計數):nth-child(odd|even)所有的奇數號或偶數號的子元素:nth-child(nX+Y)利用公式來計算子元素的位置,例如:nth-child(5n+1)選中第5n+1個子元素(n從0開始計數,即1,6,11,...):odd或:even 對于整個頁面而言,選中奇數或偶數號元素,例如p:even為頁面中所有排在偶數位的p元素(從0開始計算):eq(n)頁面中第n個元素,例如p:eq(4)為頁面中第5個p元素:gt(n)頁面中第n個元素之后的所有元素(不包括第n個元素):lt(n)頁面中第n個元素之前的所有元素(不包括第n個元素)
           
          過濾選擇器(自定義選擇器)
          目的:處理更復雜的選擇,是jQuery自定義的,不是CSS3中的選擇器。
          語法:jQuery的過濾選擇器借鑒了css中偽類的語法,即選擇器以冒號(:)開始。
          jQuery常用的過濾選擇器
          選擇器說明:animated 所有處于動畫中的元素:button所有按鈕,包括input[type=button]、input[type=submit]、input[type=reset]和<button>標記:checkbox所有復選框,等同于input[type=checkbox]:checked選擇被選中的復選框或單選框:contains(characters)選擇所有包含了文本"characters"的元素:disabled頁面中被禁用了的元素:enabled頁面中沒有被禁用的元素:file表單中的文件上傳元素,等同于input[type=file]:header選中所有標題元素,例如<h1>~<h6>:hidden匹配所有的不可見元素,例如設置為display:none的元素或input元素的type屬性為“hidden”的元素:image表單中的圖片按鈕,等同于input[type=image]:input表單輸入元素,包括<input>、<select>、<textarea>、<button>:not(filter)反向選擇:parent選擇所有擁有子元素(包括文本)的元素,即除空元素外的所有元素:password表單中的密碼域,等同于input[type=password]:radio表單中的單選按鈕,等同于input[type=radio]:reset表單中的重置按鈕,等同于input[type=radio]和button[type=reset]:selected下拉菜單中的被選中項:submit表單中的提交按鈕,包括input[type=submit]和button[type=submit]:text表單中的文本域,等同于input[type=text]:visible頁面中的所有可見元素
           
          jQuery 選擇器
          選擇器
          實例
          選取
           
           .class.class
          $(".intro.demo")
          所有 class="intro" 且 class="demo" 的元素
           
           
           
          :first
          $("p:first")
          第一個 <p> 元素
          :last
          $("p:last")
          最后一個 <p> 元素
          :even
          $("tr:even")
          所有偶數 <tr> 元素
          :odd
          $("tr:odd")
          所有奇數 <tr> 元素
           
           
           
          :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)")
          所有不為空的 input 元素
           
           
           
          :header
          $(":header")
          所有標題元素 <h1> - <h6>
          :animated
           
          所有動畫元素
           
           
           
          :contains(text)
          $(":contains('W3School')")
          包含指定字符串的所有元素
          :empty
          $(":empty")
          無子(元素)節點的所有元素
          :hidden
          $("p:hidden")
          所有隱藏的 <p> 元素
          :visible
          $("table:visible")
          所有可見的表格
           
           
           
          s1,s2,s3
          $("th,td,.intro")
          所有帶有匹配選擇的元素
           
           
           
          [attribute]
          $("[href]")
          所有帶有 href 屬性的元素
          [attribute=value]
          $("[href='#']")
          所有 href 屬性的值等于 "#" 的元素
          [attribute!=value]
          $("[href!='#']")
          所有 href 屬性的值不等于 "#" 的元素
          [attribute$=value]
          $("[href$='.jpg']")
          所有 href 屬性的值包含以 ".jpg" 結尾的元素
           
           
           
          :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")
          所有激活的 input 元素
          :disabled
          $(":disabled")
          所有禁用的 input 元素
          :selected
          $(":selected")
          所有被選取的 input 元素
          :checked
          $(":checked")
          所有被選中的 input 元素
          

          web開發前端通常都會使用jQuery這個js庫的,通過jQuery來對html元素進行操作是一件很方便的事情,但是不可能將這些操作的方式都記住的包括鄙人,所以一直就想整理一下在日常開發中使用jQuery操作html的文章

          jQuery對html元素屬性操作

          jQuery對元素設置屬性主要有2個方法prop(),attr()

          1.prop:這是高版本jQuery新增的方法,用于操作html元素固有的屬性;例如:name、id、value等

          2.attr:既可以像prop那樣操作固有屬性,也能操作我們對html元素自定義的屬性;例如:select的option我們定義< option name=’name’>< /option >這里的name就是我們自定義的屬性,只能通過attr來進行操作。

          jQuery控制元素的顯示和隱藏

          從官網可以看到元素的顯示和隱藏通過show()、hide()這兩個方法完成

          .hide(),官網解釋

          The matched elements will be hidden immediately, with no animation. This is roughly equivalent to calling .css( “display”, “none” )從這句可以看出來hide本質是上為元素添加了display:none這一css

          .show(),官網解釋

          The matched elements will be revealed immediately, with no animation. This is roughly equivalent to calling .css( “display”, “block” )可以看出show是將元素的display:none修改為display:block,因此該方法也僅適用與通過jQuery隱藏的元素或者該元素display:none屬性的元素。

          jQuery獲取表單元素的值以及設置表單元素的值

          jQuery獲取表單元素的值和設置表單元素的值很簡單

          1.$(‘#element’).val();

          2.$(‘#element).val(‘要設置的值’);

          jQuery使用html()方法

          $(selector).html()用于對元素的inner html進行操作,請記住是inner Html

          如果html()不帶參數這返回該元素的inner html內容,如果帶有參數則將該元素的inner html內容替換為參數內容

          當然還有更詳細的內容

          使用函數來設置元素內容

          使用函數來設置所有匹配元素的內容。

          語法

          $(selector).html(function(index,oldcontent))

          index - 可選。接收選擇器的 index 位置。

          oldcontent - 可選。接收選擇器的當前內容。


          主站蜘蛛池模板: 在线视频一区二区三区三区不卡| 精品无码AV一区二区三区不卡| 人妻久久久一区二区三区| 亚洲愉拍一区二区三区| 国产一区二区草草影院| 日韩成人无码一区二区三区| 无码丰满熟妇浪潮一区二区AV| 日韩精品午夜视频一区二区三区| 久久一区二区明星换脸| 亚洲一区精品中文字幕| 久久伊人精品一区二区三区| 中日韩精品无码一区二区三区| 无码人妻精品一区二区三区99性| av无码免费一区二区三区| 精品国产一区二区三区无码| 日韩精品一区二区三区中文精品| 国产成人一区二区动漫精品| 一区二区三区视频在线播放| 中文字幕一区二区免费| 色精品一区二区三区| 精品日韩在线视频一区二区三区| 国产福利一区二区| 国产成人免费一区二区三区| 亚洲午夜日韩高清一区 | 亚洲一区无码精品色| 怡红院AV一区二区三区| 亚洲国产老鸭窝一区二区三区 | 人妻久久久一区二区三区| 立川理惠在线播放一区| 国模吧一区二区三区精品视频| 国模精品一区二区三区视频| 人妻少妇精品视频三区二区一区| 精品视频一区二区| 国产激情з∠视频一区二区| 国产伦精品一区二区三区不卡| 秋霞鲁丝片一区二区三区| 亚洲精品伦理熟女国产一区二区| 午夜精品一区二区三区在线视 | 无码精品人妻一区| 午夜天堂一区人妻| 亚洲视频一区在线观看|