jquery中的html()及.text()和.val()的區別

讀取、修改元素的html結構或者元素的文本內容是常見的DOM操作,jQuery針對這樣的處理提供了2個便捷的方法.html()與.text()

.html()方法 

獲取集合中第一個匹配元素的HTML內容 或 設置每一個匹配元素的html內容,具體有3種用法:

  1. .html() 不傳入值,就是獲取集合中第一個匹配元素的HTML內容
  2. .html( htmlString )  設置每一個匹配元素的html內容
  3. .html( function(index, oldhtml) ) 用來返回設置HTML內容的一個函數

注意事項:

.htm()方法內部使用的是DOM的innerHTML屬性來處理的,所以在設置與獲取上需要注意的一個最重要的問題這個操作是針對整個HTML內容(不僅僅只是文本內容)

.text()方法

得到匹配元素集合中每個元素的文本內容結合,包括他們的後代,或設置匹配元素集合中每個元素的文本內容爲指定的文本內容。,具體有3種用法:

  1. .text() 得到匹配元素集合中每個元素的合併文本,包括他們的後代
  2. .text( textString ) 用於設置匹配元素內容的文本
  3. .text( function(index, text) ) 用來返回設置文本內容的一個函數

注意事項:

.text()結果返回一個字符串,包含所有匹配元素的合併文本

.html與.text的異同:

  1. .html與.text的方法操作是一樣,只是在具體針對處理對象不同
  2. .html處理的是元素內容,.text處理的是文本內容
  3. .html只能使用在HTML文檔中,.text 在XML 和 HTML 文檔中都能使用
  4. 如果處理的對象只有一個子文本節點,那麼html處理的結果與text是一樣的
  5. 火狐不支持innerText屬性,用了類似的textContent屬性,.text()方法綜合了2個屬性的支持,所以可以兼容所有瀏覽器

jQuery中有一個.val()方法主要是用於處理表單元素的值,比如 input, select 和 textarea。

.val()方法

    1. .val()無參數,獲取匹配的元素集合中第一個元素的當前值
    2. .val( value ),設置匹配的元素集合中每個元素的值
    3. .val( function ) ,一個用來返回設置值的函數

 注意事項:

    1. 通過.val()處理select元素, 當沒有選擇項被選中,它返回null
    2. .val()方法多用來設置表單的字段的值
    3. 如果select元素有multiple(多選)屬性,並且至少一個選擇項被選中, .val()方法返回一個數組,這個數組包含每個選中選擇項的值

.html(),.text()和.val()的差異總結:  

    1. .html(),.text(),.val()三種方法都是用來讀取選定元素的內容;只不過.html()是用來讀取元素的html內容(包括html標籤),.text()用來讀取元素的純文本內容,包括其後代元素,.val()是用來讀取表單元素的"value"值。其中.html()和.text()方法不能使用在表單元素上,而.val()只能使用在表單元素上;另外.html()方法使用在多個元素上時,只讀取第一個元素;.val()方法和.html()相同,如果其應用在多個元素上時,只能讀取第一個表單元素的"value"值,但是.text()和他們不一樣,如果.text()應用在多個元素上時,將會讀取所有選中元素的文本內容。
    2. .html(htmlString),.text(textString)和.val(value)三種方法都是用來替換選中元素的內容,如果三個方法同時運用在多個元素上時,那麼將會替換所有選中元素的內容。
    3. .html(),.text(),.val()都可以使用回調函數的返回值來動態的改變多個元素的內容。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章