【武漢小課堂第167期】常見的DOM操作有哪些


1.什么是DOM

1.1DOM 是 Document Object Model(文檔對象模型)的縮寫。

1.2DOM是中立于平臺和語言的接口,它允許程序和腳本動態地訪問和更新文檔的內容、結構和樣式。

1.3在 HTML DOM中,所有事物都是節點。DOM 是被視為節點樹的 HTML。

2.什么是DOM節點

HTML 文檔中的所有內容都是節點、整個文檔是一個文檔節點、每個 HTML 元素是元素節點、HTML 元素內的文本是文本節點、每個 HTML 屬性是屬性節點、注釋是注釋節點

3.常見的DOM屬性

3.1innerHTML 屬性

??? 可以用來修改元素內部的文本,與innerText屬性類似,innerHTML和innerText的區別在于前者獲取的是被操作元素的開始標簽到結束標簽之間的所有的元素,而后者獲取的是被操作元素的開始標簽到結束標簽之間的所有文本,但是兩者都可以用來修改元素內的內容,在修改元素內的內容時,其他的之前已經存在的子元素會被覆蓋

3.2nodeName 屬性

nodeName 屬性規定節點的名稱,元素節點的 nodeName 與標簽名相同,屬性節點的 nodeName 與屬性名相同,文本節點的 nodeName 始終是 #text,文檔節點的 nodeName 始終是 #document

4.訪問元素的方法

4.1通過使用 getElementById() 方法

使用id選擇器可以直接選到id對應的元素,并對元素進行操作

4.2通過使用 getElementsByTagName() 、通過使用 getElementsByClassName()

這兩種方法前者是通過元素的標簽進行元素的訪問,后者是通過類名來訪問元素,和id選擇器的區別在于它們選擇到的是一個數組,因此需要對具體元素進行操作的時候,需要再變量后面加上【x】,中括號里面是元素的索引值,即該元素在同類名或同便簽名的元素中的索引值

5.修改元素的方法

5.1改變 HTML 內容

document.getElementById("p1").innerHTML="New text!";使用此方法的時候注意新設定的內容會將元素中之前存在的文本或者子元素覆蓋

5.2改變 CSS 樣式

document.getElementById("p2").style.color="blue";

5.3改變多個CSS 樣式

document.getElementById("p2").style.cssText="width:10px;height:10px";這個方法不會將元素之前設置好的css樣式全部覆蓋,而是會將對應的屬性項進行覆蓋

上圖為元素初始樣式

加了main[0].style.cssText="background-color:black"

通過對比可知使用element.style.cssText添加背景色樣式后,只有背景顏色得到了改變,其他樣式如高度、寬度和邊框等都未發生改變

5.4追加子元素的方法:

首先必須創建該元素(元素節點),然后把它追加到已有的元素上:var para=document.createElement("p");

創建新的 HTML 元素 - appendChild() ,在父元素的最后追加;

創建新的 HTML 元素-element.insertBefore(para,child),在指定位置給父級追加子元素;

刪除 HTML 元素,您必須清楚該元素的父元素:parent.removeChild(child);

替換 HTML 元素,parent.replaceChild(para,child)方法;

6.使用便捷但不太常見的dom方法

6.1node類型中的cloneNode方法

(1)element.cloneNode(true):該方法會復制元素的樣式以及元素中的所有子元素的樣式


使用cloneNode(true)進行元素復制

(2)element.cloneNode(false):該方法會復制元素本身但不會復制元素的子元素

使用cloneNode(false)進行元素復制

(3)方法特點

此方法只會復制元素在html中存在的節點結構和屬性,但不會復制在js中為元素設置的屬性或是方法、事件等

6.2document.url\document.domain\document.referrer方法

(1)document.url:此方法用于獲得頁面的完整的url地址

(2)document.domain:此方法用于獲得頁面的地址縮寫(域名地址),此方法是可以進行修改的當頁面中包含來自其他子域的框架或內嵌框架時,能夠設置document.domain就非常方便了,由于跨域安全限制,來自不同子域的頁面無法通過javascript通信,如果將每個頁面的document.domain設置為相同的值,這些頁面就可以互相訪問對方包含的javascript對象了

(3)document.referrer:此方法用于求當前頁面的跳轉頁面源地址,即如果當前頁面是由之前某個頁面跳轉過來的,那么此方法可以求得那個跳轉頁面的網址,此方法常常用來做流量統計,即改頁面的訪問流量是從哪些頁面跳轉過來的


三種獲得網址的方法

上圖當前的頁面是由百度主頁跳轉過來的,通過console控制臺可以看出三種方法得到的網址的類型

7.參考文獻

《Javascript高級程序設計》第三版

8、討論問題

attributes和property的區別?



視頻鏈接:http://cache.tv.qq.com/clientportal/v9_6/main.html?cid=&vid=n05023gxah8

PPT鏈接:https://ptteng.github.io/PPT/PPT/js-02-DOM-common-manipulation.html#/


【it修真院-武漢第167期】常見dom操作有哪些_騰訊視頻


技能樹.IT修真院

“我們相信人人都可以成為一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節奏,學習的路上不再迷茫”。

這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。快來與我一起學習吧?!

www.jnshu.com/login/1/95798135



最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,570評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,505評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,786評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,219評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,438評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,971評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,796評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,995評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,230評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,697評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容

  • 之前通過深入學習DOM的相關知識,看了慕課網DOM探索之基礎詳解篇這個視頻(在最近看第三遍的時候,準備記錄一點東西...
    微醺歲月閱讀 4,504評論 2 61
  • 一、JS前言 (1)認識JS 也許你已經了解HTML標記(也稱為結構),知道了CSS樣式(也稱為表示),會使用HT...
    凜0_0閱讀 2,788評論 0 8
  • 本章內容 理解包含不同層次節點的 DOM 使用不同的節點類型 克服瀏覽器兼容性問題及各種陷阱 DOM 是針對 HT...
    悶油瓶小張閱讀 654評論 0 1
  • 春花順水流,秋月照獨州。一陣西風一聲蟬,淚欲流。造化愛弄人,滿腔是離愁。故地重游,已帶殘陽已帶秋。 良辰美景走,月...
    Bryan_Chen閱讀 297評論 0 4
  • 網站建設流程: 購買域名; 購買空間; 上傳網頁到空間中; 設置域名解析; 在空間控制臺綁定域名; 域名解析 域名...
    鳳凰社閱讀 395評論 0 1