国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

【鋒利的jQuery】學習筆記03

2024-04-27 15:00:38
字體:
來源:轉載
供稿:網友

第三章 jQuery中的DOM操作

一、DOM操作的分類

   DOM(document object model)是一種與瀏覽器、平臺、語言無關的接口,使用該接口可以訪問頁面中的·所有組件。DOM的操作可以分為DOM Core、HTML-DOM和CSS-DOM。

  1. DOM Core:任意支持DOM的程序設計語言都可以使用。JS中getElementById(),getelementByTagName(),getAttribute()和setAttribute()都是它的組成部分。
  2. HTML-DOM:提供了一些更加簡明的記號描述各種Html元素,只能用來處理web文檔。eg:document.forms
  3. CSS-DOM:是針對CSS的操作,用于獲取和設置style對象的各種屬性。eg:element.style.color

二、jQueryDOM操作——節點操作

  • 查找節點

  1. 查找元素節點

可以直接使用選擇器進行查找。

1 var $li=$("ul li:eq(1)");   //獲取ul中的第二個li節點2 var li_text=$li.text();     //獲取第二個li元素節點的文本內容3 alert(li_text);              //打印文本內容

2.查找屬性節點

找到元素節點后,使用attr()方法獲取設置元素的屬性。attr()方法傳入參數為一個時為獲取該屬性的值,傳入2個參數是為為該屬性設置值。

  1. 創建元素節點

創建元素節點需要兩步:1)創建一個新的元素節點 2)將該節點插入文檔。$(html)方法可以根據傳入的HTML標記字符串,創建一個DOM對象,并將該DOM對象包裝成一個jQuery對象后返回。

PS:動態創建的新元素節點默認保存在內存中,不會被自動添加到文檔中,需要使用其他方法將其插入文檔。

2.創建文本節點

創建文本節點也是使用$(html)方法,只需要將要添加的文本內容寫入html字符串中即可。(無論html代碼多復雜都可以使用$(html)方法)

3.創建屬性節點

創建屬性節點也是在創建元素節點時一起創建。

方法描述實例
append()向元素內部追加內容

 HTML代碼:

<p>我想說:</p>

jQuery代碼:

$("p").apppend("<b>你好</b>");

結果:

<p>我想說:<b>你好</b></p>

appendTo()將元素加到指定的元素內部,$(A).sppendTo(B)是將A追加到B中 

 HTML代碼:

<p>我想說:</p>

jQuery代碼:

$("<b>你好</b>").apppendTo("p");

結果:

<p>我想說:<b>你好</b></p>
prepend()向元素內部的前面加入內容 

 HTML代碼:

<p>我想說:</p>

jQuery代碼:

$("p").prepend("<b>你好</b>");

結果:

<p><b>你好</b>我想說:</p>
prependTo()將元素加到指定元素內部的前面,$(A).prependTo(B)是·將A插到B中的前面 

 HTML代碼:

<p>我想說:</p>

jQuery代碼:

$("<b>你好</b>").prependTo("p");

結果:

<p><b>你好</b>我想說:</p>
after()向元素后追加內容 

 HTML代碼:

<p>我想說:</p>

jQuery代碼:

$("p").after("<b>你好</b>");

結果:

<p>我想說:</p><b>你好</b>
insertAfter()將元素追加到指定元素后,$(A).insertAfter(B)是將A追加到B后面 

 HTML代碼:

<p>我想說:</p>

jQuery代碼:

$("<b>你好</b>").insertAfter("p");

結果:

<p>我想說:</p><b>你好</b>
before()向元素前追加內容 

 HTML代碼:

<p>我想說:</p>

jQuery代碼:

$("p").before("<b>你好</b>");

結果:

<b>你好</b><p>我想說:</p>
insertBefore()將元素加到指定元素內部的前面,$(A).insertBefore(B)是·將A插到B前 

 HTML代碼:

<p>我想說:</p>

jQuery代碼:

$("<b>你好</b>").insertBefore("p");

結果:

<b>你好</b><p>我想說:</p>
  1. remove()方法

從DOM中刪除所有匹配元素。使用remove()方法刪除后,該節點所包含的所有后代元素將同時被刪除。該方法返回值為一個指向已被刪除節點的引用,可以在以后使用這些元素。

這段代碼其實等效于:

 remove()方法也可以傳遞參數進行選擇刪除。eg:  $("ul li").remove("li[title!=菠蘿]")

2.detach()方法

detach()與 remove()一樣,也是從DOM中刪除匹配的元素。但是這個方法不會把匹配的元素從jQuery對象中刪除,所有綁定的事件、附加的數據都會被保留。

3.empty()方法

嚴格來講,他并不是刪除節點的方法,而是清空節點,它能元素中的所有后代節點。

clone()方法復制節點后,也是被保存在內存中,需要追加到文檔。被復制的元素不具有任何行為,想要它也具有點擊事件,可以:


在clone()方法中傳入參數true,可以復制元素的同時復制元素中的綁定事件。

 

 

將所有匹配的元素都替換成指定的html或者DOM元素。

 2.replaceAll();

與replayWith()方法作用相同,只是操作顛倒。

  1. wrap()

將某個節點用其它標記包裹,不會破壞原始文檔的語義,將所有的元素進行單獨的包裹。

得到的HTML結果:

2. wrapAll()

將匹配的元素用一個元素包裹。

得到的HTML結果:

3. wrapInner()

將每一個匹配的元素的子內容(包括文本節點)用其它結構化標記包裹起來。

 得到的HTML結果:

三、jQueryDOM操作——屬性操作

獲取屬性只需要給attr()傳入一個參數,即屬性名稱。如果要設置屬性值傳入兩個參數即屬性名稱和對應值。

使用removeAttr()方法刪除。

四、jQueryDOM操作——樣式操作

可以使用attr()方法獲取和設置樣式。

使用addClass()方法追加樣式。如果一個元素被添加了多個class值,相當于合并樣式。如果有不同的class設定了同一樣式屬性,后者覆蓋前者。

使用removeClass()從匹配元素中刪除全部或指定class。可以以空格的方式刪除多個class名。removeClass()不帶參數時為刪除所有class。

使用toggle()方法實現類似元素如果是隱藏則顯示元素,如果元素是顯示則隱藏元素的重復切換。toggleClass()實現添加、刪除類名的重復切換。

hasClass()判斷是否含有某個class,如果有返回true,沒有返回false。

五、jQueryDOM操作——設置獲取HTML、文本和值

  1. html()  讀取或設置某個元素的HTML內容。

  2. text()  讀取或設置某個元素的文本內容。
  3. val()    設置和獲取元素的值,如果元素為多選則返回包含有選擇的值的數組。

  也可以使用val()方法使select、checkbox、radio相應選項被選中。eg:  $(":checkbox").val(["check2","check3"]);

五、jQueryDOM操作——遍歷節點

  1. children()    獲取匹配元素的子元素集合,只考慮子元素不考慮其他后代元素。
  2. next()        獲取匹配元素后面緊鄰的同輩元素。
  3. prev()        獲取匹配元素前面緊鄰的同輩元素。
  4. siblings()    獲取匹配元素前后所有的同輩元素。
  5. closest()     取得最近的匹配元素。首先檢查當前元素是否匹配,如果匹配則直接返回元素本身。如果不匹配則向上查找父元素,逐級向上直到找到匹配的元素。如果什么都沒有則返回一個空的jQuery對象。
  6. parent()、parents()、closest()
方法描述示例
parent()獲取每個匹配元素的父級元素

$(".item-1").parent().css("color","red");

從指定類型的直接父節點開始查找。返回一個元素節點。

parents()獲取每個匹配元素的祖先元素

$(".item-1").parents().css("color","red");

從指定類型的直接父節點開始查找,找到第一個父節點繼續查找。返回一個多個父節點。
closest()從元素本身開始,逐級向上級元素匹配,并返回最先匹配的祖先元素

$(".item-1").closest().css("color","red");

從包含自身的節點開始查找。返回匹配的第一個元素節點。

六、CSS DOM操作

CSSDOM操作就是讀取和設置style對象的各種屬性。可以通過css()方法獲取元素的樣式屬性,無論該屬性是外部css還是內聯css都可以獲取到。該方法中如果傳入的值是數字將會被自動轉化成像素值。

當你想獲取元素高度時可以使用$("p").css("height")獲取,同時jQuery也分裝了專門的方法來獲取元素的寬高。$("p").height()也可以去的元素的高度。

PS:  css()獲取到的高度值與設置的值有關,可能會得到auto。而height()獲取的是元素的實際高度,而且不帶單位。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临城县| 富平县| 内乡县| 灵宝市| 宜城市| 峨山| 浙江省| 陇川县| 阿瓦提县| 始兴县| 奈曼旗| 河间市| 大埔区| 库车县| 云南省| 亳州市| 栾川县| 南丰县| 涟水县| 青田县| 龙江县| 清涧县| 衡阳县| 昌都县| 蒙自县| 辽阳市| 潮安县| 宁南县| 土默特右旗| 体育| 民丰县| 河北省| 晋城| 崇仁县| 乌拉特后旗| 华池县| 石景山区| 义乌市| 建平县| 托克逊县| 阿勒泰市|