日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
探討JS中獲取元素屬性8大方法

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

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

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

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

1. innerHTML 屬性

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

 
 
 
 
  1.  
  2.     

    This is a paragraph with a list following it.

     
  3.     
       
    •         
    • Item 1
    •  
    •         
    • Item 2
    •  
    •         
    • Item 3
    •  
    •     
     
 

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

 
 
 
 
  1. This is a paragraph with a list following it.

     
    •  
    •     
    • Item 1
    •  
    •     
    • Item 2
    •  
    •     
    • Item 3
    •  
     

2. outerHTML 屬性

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

  
 
 
 
  1.  
  2.     

    This is a paragraph with a list following it.

     
  3.     
       
    •         
    • Item 1
    •  
    •         
    • Item 2
    •  
    •         
    • Item 3
    •  
    •     
     
 

如果在元素上調(diào)用 outerHTML,會(huì)返回與上面相同的代碼,包括本身。

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

   
 
 
 
  1. div.outerHTML = "

    This is a paragraph.

    "; 

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

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

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

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

語(yǔ)法:

    
 
 
 
  1. node.replaceChild(newnode,oldnode) 

3. innerText 屬性

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

    
 
 
 
  1.  
  2.     

    This is a paragraph with a list following it.

     
  3.     
       
    •         
    • Item 1
    •  
    •         
    • Item 2
    •  
    •         
    • Item 3
    •  
    •     
     
 

對(duì)于這個(gè)例子中的元素而言,其中 innerText 屬性會(huì)返回下列字符串:

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

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

     
 
 
 
  1. div.innerText = "Hello world!"; 

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

      
 
 
 
  1. Hello world!
 

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

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

      
 
 
 
  1. divdiv.innerText = div.innerText; 

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

      
 
 
 
  1. 請(qǐng)輸入北京今天空氣質(zhì)量: 

輸出:

4. outerText 屬性

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

      
 
 
 
  1. div.outerText = "Hello world!"; 

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

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

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

5. value 屬性

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

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

(1) 無參text():

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

(2) 有參text(val):

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

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

(1) 無參html():

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

(2) 有參html(val):

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

8. val()方法

主要用于獲取表單元素的值如input, select 和 textarea。當(dāng)在一個(gè)空集合上調(diào)用,它返回undefined;

(1) 無參 val() :

獲取匹配的元素集合中第一個(gè)元素的當(dāng)前值。例子:

HTML代碼:

      
 
 
 
  1.  
  2.  
  3.  

控制臺(tái)輸出:

(2) 有參val(val):

設(shè)置每一個(gè)匹配元素的值。返回一個(gè)jquery對(duì)象。


分享文章:探討JS中獲取元素屬性8大方法
URL網(wǎng)址:http://www.5511xx.com/article/cdijcis.html