jQuery 選取器 (基礎惡補)

來源:互聯網
上載者:User

標籤:mouseover   滑鼠移至上方   sel   操作方法   插入   path   輸入   hello   css   

jQuery 元素選取器

jQuery 使用 CSS 選取器來選取 HTML 元素。

$("p") 選取 <p> 元素。

$("p.intro") 選取所有 class="intro" 的 <p> 元素。

$("p#demo") 選取所有 id="demo" 的 <p> 元素。

 

jQuery 屬性選取器

jQuery 使用 XPath 運算式來選擇帶有給定屬性的元素。

$("[href]") 選取所有帶有 href 屬性的元素。

$("[href=‘#‘]") 選取所有帶有 href 值等於 "#" 的元素。

$("[href!=‘#‘]") 選取所有帶有 href 值不等於 "#" 的元素。

$("[href$=‘.jpg‘]") 選取所有 href 值以 ".jpg" 結尾的元素。

 

更多的選取器執行個體
文法 描述
$(this) 當前 HTML 元素
$("p") 所有 <p> 元素
$("p.intro") 所有 class="intro" 的 <p> 元素
$(".intro") 所有 class="intro" 的元素
$("#intro") id="intro" 的元素
$("ul li:first") 每個 <ul> 的第一個 <li> 元素
$("[href$=‘.jpg‘]") 所有帶有以 ".jpg" 結尾的屬性值的 href 屬性
$("div#intro .head") id="intro" 的 <div> 元素中的所有 class="head" 的元素

 

Event 函數 綁定函數至
$(document).ready(function) 將函數綁定到文檔的就緒事件(當文檔完成載入時)
$(selector).click(function) 觸發或將函數綁定到被選元素的點擊事件
$(selector).dblclick(function) 觸發或將函數綁定到被選元素的雙擊事件
$(selector).focus(function) 觸發或將函數綁定到被選元素的獲得焦時間點事件
$(selector).mouseover(function) 觸發或將函數綁定到被選元素的滑鼠移至上方事件

 

通過 jQuery,您可以使用 toggle() 方法來切換 hide() 和 show() 方法。

顯示被隱藏的元素,並隱藏已顯示的元素:

執行個體
$("button").click(function(){  $("p").toggle();});

獲得內容 - text()、html() 以及 val()

三個簡單實用的用於 DOM 操作的 jQuery 方法:

  • text() - 設定或返回所選元素的常值內容
  • html() - 設定或返回所選元素的內容(包括 HTML 標籤)
  • val() - 設定或返回表單欄位的值

下面的例子示範如何通過 jQuery text() 和 html() 方法來獲得內容:

執行個體
$("#btn1").click(function(){  alert("Text: " + $("#test").text());});$("#btn2").click(function(){  alert("HTML: " + $("#test").html());});

下面的例子示範如何通過 jQuery val() 方法獲得輸入欄位的值:

執行個體
$("#btn1").click(function(){  alert("Value: " + $("#test").val());});

擷取屬性 - attr()

jQuery attr() 方法用於擷取屬性值。

下面的例子示範如何獲得連結中 href 屬性的值:

執行個體
$("button").click(function(){  alert($("#w3s").attr("href"));});


jQuery 文檔操作方法

這些方法對於 XML 文檔和 HTML 文檔均是適用的,除了:html()。

方法 描述
addClass() 向匹配的元素添加指定的類名。
after() 在匹配的元素之後插入內容。
append() 向匹配元素集合中的每個元素結尾插入由參數指定的內容。
appendTo() 向目標結尾插入匹配元素集合中的每個元素。
attr() 設定或返回匹配元素的屬性和值。
before() 在每個匹配的元素之前插入內容。
clone() 建立匹配元素集合的副本。
detach() 從 DOM 中移除匹配元素集合。
empty() 刪除匹配的元素集合中所有的子節點。
hasClass() 檢查匹配的元素是否擁有指定的類。
html() 設定或返回匹配的元素集合中的 HTML 內容。
insertAfter() 把匹配的元素插入到另一個指定的元素集合的後面。
insertBefore() 把匹配的元素插入到另一個指定的元素集合的前面。
prepend() 向匹配元素集合中的每個元素開頭插入由參數指定的內容。
prependTo() 向目標開頭插入匹配元素集合中的每個元素。
remove() 移除所有匹配的元素。
removeAttr() 從所有匹配的元素中移除指定的屬性。
removeClass() 從所有匹配的元素中刪除全部或者指定的類。
replaceAll() 用匹配的元素替換所有匹配到的元素。
replaceWith() 用新內容替換匹配的元素。
text() 設定或返回匹配元素的內容。
toggleClass() 從匹配的元素中添加或刪除一個類。
unwrap() 移除並替換指定元素的父元素。
val() 設定或返回匹配元素的值。
wrap() 把匹配的元素用指定的內容或元素包裹起來。
wrapAll() 把所有匹配的元素用指定的內容或元素包裹起來。
wrapinner() 將每一個匹配的元素的子內容用指定的內容或元素包裹起來。
jQuery 屬性操作方法

下面列出的這些方法獲得或設定元素的 DOM 屬性。

這些方法對於 XML 文檔和 HTML 文檔均是適用的,除了:html()。

方法 描述
addClass() 向匹配的元素添加指定的類名。
attr() 設定或返回匹配元素的屬性和值。
hasClass() 檢查匹配的元素是否擁有指定的類。
html() 設定或返回匹配的元素集合中的 HTML 內容。
removeAttr() 從所有匹配的元素中移除指定的屬性。
removeClass() 從所有匹配的元素中刪除全部或者指定的類。
toggleClass() 從匹配的元素中添加或刪除一個類。
val() 設定或返回匹配元素的值。
jQuery CSS 操作函數

下面列出的這些方法設定或返回元素的 CSS 相關屬性。

CSS 屬性 描述
css() 設定或返回匹配元素的樣式屬性。
height() 設定或返回匹配元素的高度。
offset() 返回第一個匹配元素相對於文檔的位置。
offsetParent() 返回最近的定位祖先元素。
position() 返回第一個匹配元素相對於父元素的位置。
scrollLeft() 設定或返回匹配元素相對捲軸左側的位移。
scrollTop() 設定或返回匹配元素相對捲軸頂部的位移。
width() 設定或返回匹配元素的寬度。
設定內容 - text()、html() 以及 val()

我們將使用前一章中的三個相同的方法來設定內容:

  • text() - 設定或返回所選元素的常值內容
  • html() - 設定或返回所選元素的內容(包括 HTML 標籤)
  • val() - 設定或返回表單欄位的值

下面的例子示範如何通過 text()、html() 以及 val() 方法來設定內容:

執行個體
$("#btn1").click(function(){  $("#test1").text("Hello world!");});$("#btn2").click(function(){  $("#test2").html("<b>Hello world!</b>");});$("#btn3").click(function(){  $("#test3").val("Dolly Duck");});

text()、html() 以及 val() 的回呼函數

上面的三個 jQuery 方法:text()、html() 以及 val(),同樣擁有回呼函數。回呼函數由兩個參數:被選元素列表中當前元素的下標,以及原始(舊的)值。然後以函數新值返回您希望使用的字串。

下面的例子示範帶有回呼函數的 text() 和 html():

執行個體
$("#btn1").click(function(){  $("#test1").text(function(i,origText){    return "Old text: " + origText + " New text: Hello world!    (index: " + i + ")";  });});$("#btn2").click(function(){  $("#test2").html(function(i,origText){    return "Old html: " + origText + " New html: Hello <b>world!</b>    (index: " + i + ")";  });});

設定屬性 - attr()

jQuery attr() 方法也用於設定/改變屬性值。

下面的例子示範如何改變(設定)連結中 href 屬性的值:

執行個體
$("button").click(function(){  $("#w3s").attr("href","http://www.w3school.com.cn/jquery");});

attr() 方法也允許您同時設定多個屬性。

下面的例子示範如何同時設定 href 和 title 屬性:

執行個體
$("button").click(function(){  $("#w3s").attr({    "href" : "http://www.w3school.com.cn/jquery",    "title" : "W3School jQuery Tutorial"  });});

attr() 的回呼函數

jQuery 方法 attr(),也提供回呼函數。回呼函數由兩個參數:被選元素列表中當前元素的下標,以及原始(舊的)值。然後以函數新值返回您希望使用的字串。

下面的例子示範帶有回呼函數的 attr() 方法:

執行個體
$("button").click(function(){  $("#w3s").attr("href", function(i,origValue){    return origValue + "/jquery";  });});

添加新的 HTML 內容

我們將學慣用於添加新內容的四個 jQuery 方法:

  • append() - 在被選元素的結尾插入內容
  • prepend() - 在被選元素的開頭插入內容
  • after() - 在被選元素之後插入內容
  • before() - 在被選元素之前插入內容
jQuery append() 方法

jQuery append() 方法在被選元素的結尾插入內容。

執行個體
$("p").append("Some appended text.");

在上面的例子中,我們只在被選元素的開頭/結尾插入文本/HTML。

不過,append() 和 prepend() 方法能夠通過參數接收無限數量的新元素。可以通過 jQuery 來產生文本/HTML(就像上面的例子那樣),或者通過 JavaScript 代碼和 DOM 元素。

在下面的例子中,我們建立若干個新元素。這些元素可以通過 text/HTML、jQuery 或者 JavaScript/DOM 來建立。然後我們通過 append() 方法把這些新元素追加到文本中(對 prepend() 同樣有效):

執行個體
function appendText(){var txt1="<p>Text.</p>";               // 以 HTML 建立新元素var txt2=$("<p></p>").text("Text.");   // 以 jQuery 建立新元素var txt3=document.createElement("p");  // 以 DOM 建立新元素txt3.innerHTML="Text.";$("p").append(txt1,txt2,txt3);         // 追加新元素}

通過 after() 和 before() 方法添加若干新元素

after() 和 before() 方法能夠通過參數接收無限數量的新元素。可以通過 text/HTML、jQuery 或者 JavaScript/DOM 來建立新元素。

在下面的例子中,我們建立若干新元素。這些元素可以通過 text/HTML、jQuery 或者 JavaScript/DOM 來建立。然後我們通過 after() 方法把這些新元素插到文本中(對 before() 同樣有效):

執行個體
function afterText(){var txt1="<b>I </b>";                    // 以 HTML 建立新元素var txt2=$("<i></i>").text("love ");     // 通過 jQuery 建立新元素var txt3=document.createElement("big");  // 通過 DOM 建立新元素txt3.innerHTML="jQuery!";$("img").after(txt1,txt2,txt3);          // 在 img 之後插入新元素}


刪除元素/內容

如需刪除元素和內容,一般可使用以下兩個 jQuery 方法:

  • remove() - 刪除被選元素(及其子項目)
  • empty() - 從被選元素中刪除子項目
jQuery remove() 方法

jQuery remove() 方法刪除被選元素及其子項目。

執行個體
$("#div1").remove();

jQuery empty() 方法

jQuery empty() 方法刪除被選元素的子項目。

執行個體
$("#div1").empty();

過濾被刪除的元素

jQuery remove() 方法也可接受一個參數,允許您對被刪元素進行過濾。

該參數可以是任何 jQuery 選取器的文法。

下面的例子刪除 class="italic" 的所有 <p> 元素:

執行個體
$("p").remove(".italic");

jQuery 操作 CSS

jQuery 擁有若干進行 CSS 操作的方法。我們將學習下面這些:

  • addClass() - 向被選元素添加一個或多個類
  • removeClass() - 從被選元素刪除一個或多個類
  • toggleClass() - 對被選元素進行添加/刪除類的切換操作
  • css() - 設定或返回樣式屬性
執行個體樣式表

下面的樣式表將用於本頁的所有例子:

.important{font-weight:bold;font-size:xx-large;}.blue{color:blue;}
jQuery addClass() 方法

下面的例子展示如何向不同的元素添加 class 屬性。當然,在添加類時,您也可以選取多個元素:

執行個體
$("button").click(function(){  $("h1,h2,p").addClass("blue");  $("div").addClass("important");});


jQuery removeClass() 方法

下面的例子示範如何不同的元素中刪除指定的 class 屬性:

執行個體
$("button").click(function(){  $("h1,h2,p").removeClass("blue");});


jQuery toggleClass() 方法

下面的例子將展示如何使用 jQuery toggleClass() 方法。該方法對被選元素進行添加/刪除類的切換操作:

執行個體
$("button").click(function(){  $("h1,h2,p").toggleClass("blue");});

jQuery 選取器 (基礎惡補)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.