2.JQuery中的DOM操作

JQuery中的DOM操作

一種與瀏覽器喘帚,平臺(tái)负溪,語言無關(guān)的接口蓬推。使用該接口可以輕松地訪問頁面中所有的標(biāo)準(zhǔn)組件烫幕。
DOM Core:DOM Core 并不專屬于 JavaScript俺抽,任何一種支持 DOM 的程序設(shè)計(jì)語言都可以使用它。它的用途并非僅限于處理網(wǎng)頁较曼,也可以用來處理任何一種是用標(biāo)記語言編寫出來的文檔磷斧,例如:XML。
HTML DOM:使用 JavaScript 和 DOM 為 HTML 文件編寫腳本時(shí)捷犹,有許多專屬于HTML-DOM的屬性弛饭。
CSS-DOM:針對(duì)于CSS操作,在JavaScript中萍歉,CSS-DOM 主要用于獲取和設(shè)置 style 對(duì)象的各種屬性侣颂。

1.查找節(jié)點(diǎn)

請(qǐng)見上面的“基本選擇器”。

2.創(chuàng)建節(jié)點(diǎn)

使用JQuery的工廠函數(shù)枪孩,創(chuàng)建一個(gè)新節(jié)點(diǎn):var $newNode = $(“<p>你好</p>”);憔晒,然后將新節(jié)點(diǎn)插入到指定元素節(jié)點(diǎn)處。

3.插入節(jié)點(diǎn)

將新創(chuàng)建的節(jié)點(diǎn)销凑,或獲取的節(jié)點(diǎn)插入指定的位置丛晌。
“$node.append($newNode)”,向每個(gè)匹配的元素內(nèi)部的結(jié)尾處追加結(jié)尾處斗幼。如澎蛛,“$("p").append("<b>Hello</b>");”將"<b>Hello</b>"添加到"p"內(nèi)部的結(jié)尾處。
“$newNode.appendTo($node)”蜕窿,將新元素追加到每個(gè)匹配元素內(nèi)部的結(jié)尾處谋逻。
“$node.prepend($newNode)”,向每個(gè)匹配的元素內(nèi)部的結(jié)尾處追加開始處桐经。如毁兆,“$("p").prepend("<b>Hello</b>");”將"<b>Hello</b>"添加到"p"內(nèi)部的起始處。
“$newNode.prependTo($node)”阴挣, 將新元素追加到每個(gè)匹配元素內(nèi)部的開始處气堕。
“$node.after($newNode)”,向每個(gè)匹配的元素的之后插入內(nèi)容畔咧,是并列兄弟茎芭。如,“$("p").after("<b>Hello</b>");”將"<b>Hello</b>"插入到"p"的后邊誓沸。它們是兄弟關(guān)系梅桩。
“$newNode.insertAfter($node)”,將新元素插入到每個(gè)匹配元素之后拜隧。
“$newNode.before($node)”宿百,向每個(gè)匹配的元素的之前插入內(nèi)容趁仙。如,“$("p").before("<b>Hello</b>");”將"<b>Hello</b>"插入到"p"的前面垦页,它們是兄弟關(guān)系雀费。
“$node.insertBefore($newNode)”,將新元素插入到每個(gè)匹配元素之前外臂。
注意:如果插入的節(jié)點(diǎn)是不是新創(chuàng)建的坐儿,插入將變成移動(dòng)操作。所以宋光,在插入這樣的節(jié)點(diǎn)之前應(yīng)該使用clone的節(jié)點(diǎn)貌矿。

4.刪除節(jié)點(diǎn)

從DOM中刪除所有匹配的元素。如罪佳,“$("p").remove(".hello");”刪除所為class屬性值為hello的p元素逛漫,還有它下面的所有元素。

從DOM中清除所有匹配的元素赘艳。如酌毡,“$("p").empty();”清除所有p元素,還有它下面的所有元素蕾管。

5.復(fù)制節(jié)點(diǎn)

克隆匹配的DOM元素枷踏。如,“$("p").clone();”返回克隆后的副本掰曾,但不具有任何行為旭蠕。如果要將DOM的事件一起克隆,應(yīng)該使用“$("p").clone(true);”旷坦。

6.替換節(jié)點(diǎn)

將所有匹配的元素都替換為指定的 HTML 或 DOM 元素掏熬。如,$("p").replaceWith("<b>Paragraph. </b>");秒梅,將所有p元素旗芬,替換為"<b>Paragraph. </b>"。

與replaceWith相返:$("<b>Paragraph. </b>").replaceAll("p");捆蜀。

7.包裹節(jié)點(diǎn)

wrap():將指定節(jié)點(diǎn)用其他標(biāo)記包裹起來疮丛。該方法對(duì)于需要在文檔中插入額外的結(jié)構(gòu)化標(biāo)記非常有用, 而且不會(huì)破壞原始文檔的語義辆它。如誊薄,“$("p").wrap("<div class='wrap'></div>");”。每個(gè)p元素被包裹到<div>中娩井。
wrapAll():將所有匹配的元素用一個(gè)元素來包裹暇屋。而wrap()方法是將所有的元素進(jìn)行單獨(dú)包裹似袁。如洞辣,“$("p").wrapAll("<div></div>");”咐刨,將所有p元素包裹到<div>中。
wrapInner():將每一個(gè)匹配的元素的子內(nèi)容(包括文本節(jié)點(diǎn))用其他結(jié)構(gòu)化標(biāo)記包裹起來扬霜。如定鸟,“$("p").wrapInner("<b></b>");”, <b>被每一個(gè)p元素包裹著瓶。

8.屬性設(shè)置

attr():獲取屬性和設(shè)置屬性联予。
當(dāng)為該方法傳遞一個(gè)參數(shù)時(shí),即為某元素的獲取指定屬性材原。如沸久,“$("img").attr("src");”,獲取img元素的src屬性值余蟹。
當(dāng)為該方法傳遞兩個(gè)參數(shù)時(shí)卷胯,即為某元素設(shè)置指定屬性的值。如威酒,“$("img").attr("src","test.jpg");”窑睁,設(shè)置img元素的src屬性值為test.jsp。
jQuery 中有很多方法都是一個(gè)函數(shù)實(shí)現(xiàn)獲取和設(shè)置葵孤。如:attr()担钮,html(),text()尤仍,val()箫津,height(),width()吓著,css()等鲤嫡。
removeAttr():刪除指定元素的指定屬性。

9.樣式操作

可以通過“attr()”設(shè)置或獲取css樣式绑莺。
追加樣式:addClass() 暖眼。如,“$("p").addClass("selected");”纺裁,向所有P元素中追加“selected”樣式诫肠。
移除樣式:removeClass() --- 從匹配的元素中刪除全部或指定的class。如欺缘,“$("p").removeClass("selected");”栋豫,刪除所有P元素中的“selected”。
切換樣式:toggleClass() --- 控制樣式上的重復(fù)切換谚殊。如果類名存在則刪除它丧鸯,如果類名不存在則添加它。如嫩絮,“$("p").toggleClass("selected");”丛肢,所有的P元素中围肥,如果存在“selected”樣式就刪除“selected”樣式,否則就添加“selected”樣式蜂怎。
判斷是否含有某個(gè)樣式:hasClass() --- 判斷元素中是否含有某個(gè) class穆刻,有返回 true; 否則返回 false杠步。如氢伟,“$(this).hasClass("protected")”,判斷當(dāng)前節(jié)點(diǎn)是否有“protected”樣式幽歼。

10.設(shè)置或獲取HTML朵锣、文本和值

讀取和設(shè)置某個(gè)元素中的 HTML 內(nèi)容: html(),該方法可以用于 XHTML甸私,但不能用于 XML 文檔猪勇。
讀取和設(shè)置某個(gè)元素中的文本內(nèi)容:text(),該方法既可以用于 XHTML 也可以用于 XML 文檔颠蕴。
讀取和設(shè)置某個(gè)元素中的值:val()泣刹,該方法類似 JavaScript 中的 value 屬性。對(duì)于文本框犀被,下拉列表框椅您,單選框該方法可返回元素的值(多選框只能返回第一個(gè)值)。如果為多選下拉列表框寡键,則返回一個(gè)包含所有選擇值的數(shù)組掀泳。

11.常用遍歷節(jié)點(diǎn)的方法

取得匹配元素的所有子元素組成的集合:children()。該方法只考慮第一層子元素而不考慮任何后代元素西轩。
取得匹配元素后面緊鄰的兄弟元素的集合(但集合中只有一個(gè)元素):next()员舵。
取得匹配元素前面緊鄰的兄弟元素的集合(但集合中只有一個(gè)元素):prev()。
取得匹配元素前后所有的兄弟元素: siblings()藕畔。

12.CSS-DOM操作

獲取和設(shè)置元素的樣式屬性:css()马僻。
獲取和設(shè)置元素透明度:opacity()屬性。
獲取和設(shè)置元素高度注服,寬度:height()韭邓,width()。在設(shè)置值時(shí)溶弟,若只傳遞數(shù)字女淑,則默認(rèn)單位是px。如需要使用其他單位則需傳遞一個(gè)字符串辜御,例如 “$(“p:first”).height(“2em”)”鸭你;
獲取元素在當(dāng)前視窗中的相對(duì)位移:offset()。它返回的對(duì)象包含了兩個(gè)屬性:top,left袱巨。該方法只對(duì)可見元素有效袜茧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市瓣窄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纳鼎,老刑警劉巖俺夕,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異贱鄙,居然都是意外死亡劝贸,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門逗宁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來映九,“玉大人,你說我怎么就攤上這事瞎颗〖” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵哼拔,是天一觀的道長(zhǎng)引有。 經(jīng)常有香客問我,道長(zhǎng)倦逐,這世上最難降的妖魔是什么譬正? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮檬姥,結(jié)果婚禮上曾我,老公的妹妹穿的比我還像新娘。我一直安慰自己健民,他們只是感情好抒巢,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秉犹,像睡著了一般虐秦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凤优,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天悦陋,我揣著相機(jī)與錄音,去河邊找鬼筑辨。 笑死俺驶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播暮现,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼还绘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了栖袋?” 一聲冷哼從身側(cè)響起拍顷,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎塘幅,沒想到半個(gè)月后昔案,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡电媳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年踏揣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匾乓。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捞稿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拼缝,到底是詐尸還是另有隱情娱局,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布咧七,位于F島的核電站铃辖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏猪叙。R本人自食惡果不足惜娇斩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望穴翩。 院中可真熱鬧犬第,春花似錦、人聲如沸芒帕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽背蟆。三九已至鉴分,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間带膀,已是汗流浹背志珍。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留垛叨,地道東北人伦糯。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親敛纲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子喂击,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一、樣式篇 第1章 初識(shí)jQuery (1)環(huán)境搭建 進(jìn)入官方網(wǎng)站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,354評(píng)論 0 44
  • 簡(jiǎn)介瀏覽器可以被認(rèn)為是使用最廣泛的軟件,本文將介紹瀏覽器的工 作原理旁壮,我們將看到监嗜,從你在地址欄輸入google.c...
    聽風(fēng)閣閱讀 3,272評(píng)論 0 7
  • 第一章 認(rèn)識(shí)jQuery jQuery 能做什么 1. 取得文檔中的元素 2. 修改頁面的外觀 CSS雖然為影響文...
    七弦桐語閱讀 477評(píng)論 0 1
  • DOM創(chuàng)建節(jié)點(diǎn)及節(jié)點(diǎn)屬性 通過JavaScript可以很方便的獲取DOM節(jié)點(diǎn),從而進(jìn)行一系列的DOM操作寡具。但實(shí)際上...
    阿r阿r閱讀 1,002評(píng)論 0 9
  • 玉鏡當(dāng)空映素輝,巉巖幸得漫芳菲稚补。 壓枝瓊?cè)锪栌墓韧喝o人蝶不歸。 上一篇七絕.自嘲
    屾山泉鳴閱讀 898評(píng)論 14 20