中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jQuery 學習系列筆記(三)(續)

發布時間:2020-06-24 17:26:15 來源:網絡 閱讀:722 作者:我不會抽煙 欄目:web開發

接著上一篇繼續...

三、設置元素內容

針對通過修改元素的HTML方法來達到修改元素內容,jQuery提供了多種方法來實現。

1、替換HTML或文本內容

html()獲取匹配集里第一個元素的HTML內容。返回第一個已匹配元素的HTML內容。返回值與訪問那個元素的innerHTML屬性所獲得的內容一致。

這個應該不用解釋了,我們都學習了那么多方法了。

html(text)把傳入的HTML片段設置為所有匹配元素的內容。返回包裝集。
text(字符串)將被設置為元素內容的HTML片段

另外也可以只獲取或設置元素的文本內容。

text()把包裝集里元素的所有文本內容連接起來,并返回字符串作為命令的結果。返回連接而成的字符串。

舉個例子:有如下HTML片段。

<ulid="theList">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
  <li>Four</li>
</ul>
var text = $("#theList").text();

則text的結果是OneTwoThreeFour。

text(content)把所有已包裝元素的文本內容設置為已傳遞值。如果已傳遞文本包含尖括號(<和>),則這些字符被替換為等價的HTML實體。返回包裝集。
content(字符串)將要設置到已包裝元素里的文本內容。任何尖括號字符將被轉義為HTML實體。

需要說明的是,無論用html()還是text()都是對原先內容的覆蓋,所以使用前必須確認好。

2、移動和復制元素

append(content)把傳入的HTML片段或元素追加到所有已匹配元素的內容之后。返回包裝集。
content(字符串|元素|對象)將被追加到包裝集各元素的一個字符串、元素或包裝集。

舉例說明

$("p").append("<b>some text</b>");

這句比較簡單,就是表示在所有<p>元素后面追加新的HTML片段。下面是稍稍復雜的用法。

$("p.sugar").append($("a.ant"));

這表示什么呢?在帶有類.sugar的所有<p>元素后面追加帶有類ant的鏈接。這里的追加有點說道。如果append里的是單一元素,那么將該元素從原來的位置上刪除掉,移動到新的父元素下。如果是多個元素,即是一個內容大于等于1的集合,那么在原來位置保留的情況下,會在新的父元素下追加集合中的副本。

前者可以理解為移動操作,后者則是復制操作。

如果不想追加整個包裝集,也可以單獨追加一個特定的DOM元素。如:

var toAppend = $("a.ant")[0];
$("p.sugar").append(toAppend);

這種情況下對于追加的toAppend是所謂的移動還是復制,要取決于$("p.sugar")的元素數量(注意:與上面的例子不同,上面是取決于追加元素的數量)。如果匹配一個元素進行移動操作。多個,則進行復制操作。

還有更簡單的方法:

appendTo(target)把包裝集里所有元素移動到指定目標的內容的末尾。返回包裝集。
target(字符串|元素)一個包含jQuery選擇器的字符串,或一個DOM元素。包裝集各元素將追加到target所指定的那個位置。

同樣的,如果target只匹配一個元素,則是移動,如果是多個元素,則是復制。

再介紹幾個工作方式類似于append和appendTo的方法。

prepend()和prependTo()表示在目標元素的內容之前插入源元素,而不是之后。

before()和insertBefore()表示在目標元素之前插入元素,而不是在目標元素的第一個子元素之前。

after()和insertAfter()表示目標元素之后插入元素,而不是在目標元素的最后一個子元素之后。

3、包裹元素

什么叫包裹元素呢?妹的,看書讀文字把我都搞成漿糊了還沒弄明白所謂的包裹元素,又沒有例子是弄哪樣?我才不會這么不負責任。

wrap(wrapper)把匹配集各元素用已傳遞HTML標簽或已傳遞元素的克隆副本分別包裹起來
wrapper(字符串|元素)用于包裹匹配集各元素的元素開始和結束標簽或者一個將被克隆且用作包裹器的元素

舉個例子

$("a.surprise").wrap("<div class='hello'></div>");

上面的例子就是對應紫色的部分,把頁面上所有帶有類surprise的鏈接外面套層帶有類hello的<div>標簽。

最后頁面上的情況可能就是這樣的。

...
<a class="surprise"> one</a>
<a class="surprise"> two</a>
<a class="surprise"> three</a>
...
轉換后
...
<div class="hello">
    <a class="surprise"> one</a>
</div>
<div class="hello">
    <a class="surprise"> two</a>
</div>
<div class="hello">
    <a class="surprise"> three</a>
</div>
...

另一種形式呢?舉個例子,用頁面上第一個<div>元素的克隆副本分別包裹各鏈接

$("a.surprise").wrap($("div:first")[0]);

就是這個樣子啦。包裝后的結果就是頁面上第一個<div>元素是什么樣子的,包裹在各鏈接上的<div>就是什么樣子的。

有的時候我們不想包裹匹配集里的元素,而想包裹元素的內容。那么就用下面的方法。

wrapInner(wrapper)用已傳遞元素的克隆副本或已傳遞HTML標簽,把匹配集各元素的內容(包括文本節點)分別包裹起來。
wrapper同上

對于包裹,說實話我真沒用過,不過據說是會經常用到,我寫的jQuery代碼也太少了,哈哈。

4、刪除元素

remove()從頁面DOM里刪除包裝集里所有元素。返回包裝集。

需要說明的是從DOM里刪除的元素仍然被該包裝集引用著,所以可以進一步用其他 jQuery命令去操作。如appendTo()、insertBefore()等類似命令。

empty()清空匹配集里所有DOM元素的內容。返回包裝集。

5、克隆元素

clone(copyHandlers)創建包裝集里元素的副本,并返回包含這些副本的新包裝集。返回新建的包裝集。
copyHandlers(布爾型)如果為true,復制事件處理程序;如果為false或省略,則不復制事件處理程序。

通常情況下都是我們克隆完一個包裝集之后都是利用jQuery命令把其附加到DOM中的某個地方。

四、處理表單元素值

對于表單元素,我們最常見的操作是:存取表單元素值。

val()返回匹配集里第一個元素的value特性。如果是多選元素,則返回所有選中項的數組。返回已獲取的值或值數組

對于這個命令我們有幾個需要注意的地方

(1)如果包裝集里第一個元素不是表單元素,就會拋出javascript錯誤。

(2)不會區分復選框和單選按鈕的選中或非選中狀態,而是返回復選框或單選按鈕的value特性值,不管其選中與否。

對于單選按鈕,val雖然看起來有點雞肋,但是如果我們結合上jQuery選擇器之后,結果就不一樣了,舉個例子:如果想獲取一組包含名為radioGroup的單選按鈕組中選中按鈕的值,那么我們可以這樣。

$("[name=radioGroup]:checked").val();

這樣可以很好的達到效果。但是對于復選框的話,我們就要想別的辦法了。

val(value)把傳入的值設置為所有已匹配表單元素的值。
value一個字符串,用于設置包裝集里各表單元素的value屬性值。

同樣,這個方法也有局限性,就是不能把多個值設置到多選列表中去。另一種重載變體

val(values)導致包裝集里任何復選框、單選按鈕或<select>元素的選項變為已選中(checked)或已選擇(selected)狀態,只要它們的值和已傳遞值數組的任何一個值相匹配。
values一個值數組,用于確定哪些元素將被選中或選擇。

舉例說明:把頁面上所有<input>和<select>元素,只要它們的值里和輸入字符串ironman、superman、spiderman中任何一個相匹配。那么如果匹配的是復選框或單選按鈕將變為已選中狀態,如果是<select>則變為已選擇狀態。

$("input, select").val(['ironman','superman','spiderman']);



其實到目前為止,我們就已經能用jQuery做許多事情了,不過這些都是比較“隱蔽”的,如果想來些效果的話,那我們還得接下來的學習。




關于jQuery的學習系列筆記我寫的會比較簡潔,更注重的是快速上手使用,當然,非常重要的知識點我還是會專門指出的。

PS:歡迎留言交流,24小時內必有回復。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

峨眉山市| 蛟河市| 墨竹工卡县| 临泉县| 凤台县| 福海县| 华亭县| 九江县| 普格县| 龙江县| 长顺县| 庆云县| 杂多县| 安新县| 英德市| 江安县| 临江市| 浙江省| 平原县| 镇坪县| 留坝县| 吴堡县| 疏附县| 弥勒县| 元朗区| 禄丰县| 璧山县| 建始县| 宁国市| 临江市| 达孜县| 丽水市| 逊克县| 湟源县| 道孚县| 广东省| 固始县| 昔阳县| 合阳县| 枣强县| 蓬安县|