千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 【純干貨】8個javascript獲取元素的方法

【純干貨】8個javascript獲取元素的方法

來源:千鋒教育
發(fā)布人:syq
時間: 2022-06-30 10:09:44 1656554984

  在我們的日常前端開發(fā)工作中,經(jīng)常會用到j(luò)avascript技術(shù),那么javascript獲取元素的方法有哪些,大家都知道嗎?目前獲取元素屬性的方法中最常見的有8個,包括innerHTML、outerHTML、innerText 、outerText、value、text()、html(),val(),讓我們分別了解下應(yīng)用方法吧。

javascript獲取元素的方法

  1、innerHTML 屬性

  在讀模式下,innerHTML屬性返回與調(diào)用元素的所有子節(jié)點(diǎn)(包括元素、注釋和文本節(jié)點(diǎn))對應(yīng)的 HTML 標(biāo)記。在寫模式下,innerHTML 會根據(jù)指定的值創(chuàng)建新的 DOM 樹,然后用這個 DOM 樹完全替換調(diào)用元素原先的所有子節(jié)點(diǎn)。下面是一個例子:

1

  對于上面的元素來說,它的 innerHTML 屬性會返回如下字符串。

2

  2、outerHTML 屬性

  在讀模式下,outerHTML 返回調(diào)用它的元素及所有子節(jié)點(diǎn)的 HTML 標(biāo)簽。在寫模式下,outerHTML 會根據(jù)指定的 HTML 字符串創(chuàng)建新的 DOM 子樹完全替換調(diào)用元素。下面是一個例子。

3

  如果在元素上調(diào)用 outerHTML,會返回與上面相同的代碼,包括本身。使用 outerHTML 屬性以下面這種方式設(shè)置值:

  這行代碼完成的操作與下面這些 DOM 腳本代碼一樣:

4

  結(jié)果,就是新創(chuàng)建的元素會取代 DOM 樹中的元素。

  replaceChild() 方法用新節(jié)點(diǎn)替換某個子節(jié)點(diǎn)。

  語法:

  3、innerText 屬性

  通過 innerText 屬性可以操作元素中包含的所有文本內(nèi)容,包括子文檔樹中的文本。在通過 innerText 讀取值時,它會按照由淺入深的順序,將子文檔樹中的所有文本拼接起來。在通過 innerText 寫入值時,結(jié)果會刪除元素的所有子節(jié)點(diǎn),插入包含相應(yīng)文本值的文本節(jié)點(diǎn)。下面是一個例子:

5

  對于這個例子中的元素而言,其中 innerText 屬性會返回下列字符串:

6

  使用 innerText 屬性設(shè)置這個元素內(nèi)容,則只需一行代碼:

  執(zhí)行這行代碼后,頁面的 HTML 代碼就會變成如下所示:

  設(shè)置 innerText 屬性移除了先前存在的所有子節(jié)點(diǎn),完全改變了 DOM 樹。設(shè)置 innerText 永遠(yuǎn)只會生成當(dāng)前節(jié)點(diǎn)的一個子文本節(jié)點(diǎn),而為了確保只生成一個字文本節(jié)點(diǎn),就必須要對文本進(jìn)行 HTML 編碼。利用這一點(diǎn),可以通過 innerText 屬性過濾掉 HTML 標(biāo)簽。方法是將 innerText 設(shè)置等于 innerText,這樣就可以去掉所有 HTML 標(biāo)簽,比如:

  執(zhí)行這行代碼后,就用原來的文本內(nèi)容替換了容器元素中的所有內(nèi)容(包括子節(jié)點(diǎn),因而也就去掉了 HTML 標(biāo)簽)。舉個栗子:

  輸出:

7

  4、outerText 屬性

  除了作用范圍擴(kuò)大到了包含 調(diào)用它的節(jié)點(diǎn)之外,outerText 與innerText 基本上沒有多大區(qū)別。在讀取文本值時,outerText 與 innerText 的結(jié)果完全一樣。但在寫模式下,outerText 就完全不同了:outerText 不只是替換調(diào)用它的元素的子節(jié)點(diǎn),而是會替換整個元素(包括子節(jié)點(diǎn))。比如:

  這行代碼實際上相當(dāng)于如下兩行代碼:

8

  本質(zhì)上,新的文本節(jié)點(diǎn)會完全取代調(diào)用 outerText 的元素。此后,該元素就從文檔中被刪除,無法訪問。

  5、value 屬性

  屬性可設(shè)置或返回密碼域的默認(rèn)值。獲取文本框的值。

  6、text()

  設(shè)置或者獲取所選元素的文本內(nèi)容

  1)無參text():取得所有匹配元素的內(nèi)容。結(jié)果是由所有匹配元素包含的文本內(nèi)容組合起來的文本。返回的是一個String。

9

  2)有參text(val):設(shè)置所有匹配元素的文本內(nèi)容,與 html() 類似, 但將編碼 HTML (將 "<" 和 ">" 替換成相應(yīng)的HTML實體).返回一個jquery對象。

10

  7、html():

  設(shè)置或者獲取所選元素的內(nèi)容(包括html標(biāo)記)

  1)無參html():取得第一個匹配元素的html內(nèi)容。這個函數(shù)不能用于XML文檔。但可以用于XHTML文檔,返回的是一個String。

11

  2)有參html(val):設(shè)置每一個匹配元素的html內(nèi)容。這個函數(shù)不能用于XML文檔。但可以用于XHTML文檔。返回一個jquery對象。

12

  8、val()方法

  主要用于獲取表單元素的值如input, select 和 textarea。當(dāng)在一個空集合上調(diào)用,它返回undefined;1)無參 val():獲取匹配的元素集合中第一個元素的當(dāng)前值。例子:HTML代碼:

13

  控制臺輸出:

  2)有參val(val):設(shè)置每一個匹配元素的值。返回一個jquery對象。

14

  大家對以上的8個javascript獲取元素的方法是否有了一些了解呢?根據(jù)獲取元素方法的不同,所應(yīng)用的場景也不相同。想要熟練地使用這8種方法,就需要了解它們各個特征。更多關(guān)于前端培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實現(xiàn)高薪夢想。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動備份有什么區(qū)別?

1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時間點(diǎn)后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動備份的主要目標(biāo)...詳情>>

2023-10-14 12:48:59
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢和特點(diǎn)。包括其...詳情>>

2023-10-14 12:34:11
ORM解決的主要問題是什么?

ORM(對象關(guān)系映射)解決的主要問題是將關(guān)系數(shù)據(jù)庫與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)以表格的形式存儲,而在面向?qū)ο?..詳情>>

2023-10-14 12:26:19
Go為什么不支持三元運(yùn)算符?

Go為什么不支持三元運(yùn)算符Go語言是一種以簡潔和有效性為目標(biāo)的編程語言,因此在設(shè)計過程中,Go的設(shè)計者刻意排除了一些他們認(rèn)為可能導(dǎo)致復(fù)雜性或...詳情>>

2023-10-14 12:12:36