自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

探討JS中獲取元素屬性8大方法

開發(fā) 前端
今天想聊聊在Web前端開發(fā)中經(jīng)常用到的技術:獲取元素屬性的一系列方法【innerHTML、outerHTML、innerText 、outerText、value、text()、html(),val()】。

今天想聊聊在Web前端開發(fā)中經(jīng)常用到的技術:獲取元素屬性的一系列方法【innerHTML、outerHTML、innerText 、outerText、value、text()、html(),val()】。

這些方法,大家應該用過,如果讓你說出它們的一些區(qū)別和聯(lián)系,能答得上來嗎?接下來讓我們一起來溫故下。

首先我們需要把它們歸類下:

  • innerHTML、outerHTML、innerText 、outerText、value 屬于原生javascript的方法。
  • text()、html(),val()屬于jQuery中的方法。

[[285109]]

1. innerHTML 屬性

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

  1. <div id="content"> 
  2.     <p>This is a <strong>paragraph</strong> with a list following it.</p> 
  3.     <ul> 
  4.         <li>Item 1</li> 
  5.         <li>Item 2</li> 
  6.         <li>Item 3</li> 
  7.     </ul> 
  8. </div> 

 

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

  1. <p>This is a <strong>paragraph</strong> with a list following it.</p> 
  2. <ul> 
  3.     <li>Item 1</li> 
  4.     <li>Item 2</li> 
  5.     <li>Item 3</li> 
  6. </ul> 

 

2. outerHTML 屬性

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

  1. <div id="content"> 
  2.     <p>This is a <strong>paragraph</strong> with a list following it.</p> 
  3.     <ul> 
  4.         <li>Item 1</li> 
  5.         <li>Item 2</li> 
  6.         <li>Item 3</li> 
  7.     </ul> 
  8. </div> 

 

如果在元素上調用 outerHTML,會返回與上面相同的代碼,包括本身。

使用 outerHTML 屬性以下面這種方式設置值:

  1. div.outerHTML = "<p>This is a paragraph.</p>"

 

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

  1. var p = document.createElement("p"); 
  2. p.appendChild(document.createTextNode("This is a paragraph.")); 
  3. div.parentNode.replaceChild(p, div); 

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

 

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

語法:

  1. node.replaceChild(newnode,oldnode) 

3. innerText 屬性

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

  1. <div id="content"> 
  2.     <p>This is a <strong>paragraph</strong> with a list following it.</p> 
  3.     <ul> 
  4.         <li>Item 1</li> 
  5.         <li>Item 2</li> 
  6.         <li>Item 3</li> 
  7.     </ul> 
  8. </div> 

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

  1. This is a paragraph with a list following it. 
  2. Item 1 
  3. Item 2 
  4. Item 3 

使用 innerText 屬性設置這個元素內容,則只需一行代碼:

  1. div.innerText = "Hello world!"

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

  1. <div id="content">Hello world!</div> 

設置 innerText 屬性移除了先前存在的所有子節(jié)點,完全改變了 DOM 樹。

設置 innerText 永遠只會生成當前節(jié)點的一個子文本節(jié)點,而為了確保只生成一個字文本節(jié)點,就必須要對文本進行 HTML 編碼。利用這一點,可以通過 innerText 屬性過濾掉 HTML 標簽。方法是將 innerText 設置等于 innerText,這樣就可以去掉所有 HTML 標簽,比如:

  1. divdiv.innerText = div.innerText; 

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

  1. <label id="lab">請輸入北京今天空氣質量:<input id="aqi-input" type="text"></label> 

輸出:

JS中獲取元素屬性的8大方法

4. outerText 屬性

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

  1. div.outerText = "Hello world!"

這行代碼實際上相當于如下兩行代碼:

  1. var text = document.createTextNode("Hello world!"); 
  2. div.parentNode.replaceChild(text,div); 

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

5. value 屬性

屬性可設置或返回密碼域的默認值。獲取文本框的值。

6. text():設置或者獲取所選元素的文本內容

(1) 無參text():

取得所有匹配元素的內容。結果是由所有匹配元素包含的文本內容組合起來的文本。返回的是一個String。

JS中獲取元素屬性的8大方法

(2) 有參text(val):

設置所有匹配元素的文本內容,與 html() 類似, 但將編碼 HTML (將 "<" 和 ">" 替換成相應的HTML實體).返回一個jquery對象。

JS中獲取元素屬性的8大方法

7. html():設置或者獲取所選元素的內容(包括html標記)

(1) 無參html():

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

JS中獲取元素屬性的8大方法

(2) 有參html(val):

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

JS中獲取元素屬性的8大方法

8. val()方法

主要用于獲取表單元素的值如input, select 和 textarea。當在一個空集合上調用,它返回undefined;

(1) 無參 val() :

獲取匹配的元素集合中第一個元素的當前值。例子:

HTML代碼:

  1. <input type="text" value="你好啊"> 
  2. <input type="text" value="啊哈哈哈"> 
  3. <input type="text" value="嘻嘻嘻嘻"> 

控制臺輸出:

JS中獲取元素屬性的8大方法

(2) 有參val(val):

設置每一個匹配元素的值。返回一個jquery對象。

JS中獲取元素屬性的8大方法

 

責任編輯:趙寧寧 來源: Web前端之家
相關推薦

2009-07-06 13:18:35

Servlet方法

2010-08-09 14:54:58

Flex全屏

2022-04-24 13:54:23

元宇宙虛擬土地VR

2010-07-29 13:41:57

Flex性能優(yōu)化

2015-06-10 14:28:34

數(shù)據(jù)中心數(shù)據(jù)中心優(yōu)化

2019-04-18 14:28:40

Linux系統(tǒng)服務命令

2018-11-12 13:45:05

Hadoop攻擊互聯(lián)網(wǎng)

2011-03-24 14:26:59

2009-09-15 15:51:52

2014-04-18 09:06:25

2015-06-08 14:08:11

2015-08-13 10:42:49

.NET空白字符串

2015-10-29 11:55:30

.NET空白字符串方法

2011-06-14 18:54:25

網(wǎng)站流量

2011-09-28 13:38:53

CA云計算云安全

2011-09-28 16:21:21

云安全企業(yè)

2009-01-11 10:25:00

局域網(wǎng)共享上網(wǎng)

2022-10-09 15:32:05

數(shù)據(jù)分析大數(shù)據(jù)運營

2017-07-11 04:16:30

大數(shù)據(jù)數(shù)據(jù)大數(shù)據(jù)應用

2011-05-16 10:30:02

點贊
收藏

51CTO技術棧公眾號