深入學習jQuery描述文本內容的3個方法

来源:http://www.cnblogs.com/xiaohuochai/archive/2016/09/28/5917262.html
-Advertisement-
Play Games

[1]html() [2]text() [3]val() [4]總結 ...


×
目錄
[1]html() [2]text() [3]val()[4]總結

前面的話

  在javascript中,描述元素內容有5個屬性,分別是innerHTMLouterHTMLinnerTextouterTexttextContent。這5個屬性各自有各自的功能,且相容性不同。jQuery針對這樣的處理提供了3個便捷的方法,分別是:html()、text()和val()。本文將詳細介紹jQuery描述文本內容的這3個方法

 

html()

  html()方法類似於javascript中的inenrHTML屬性,用來獲取集合中第一個匹配元素的HTML內容或設置每一個匹配元素的html內容,具體有3種用法:

【1】html()

  html()不傳入值可以用來獲取集合中第一個匹配元素的HTML內容

  [註意]與innerHTML屬性的問題相同,IE8-瀏覽器會將所有標簽轉換成大寫形式,且不包含空白文本節點;而其他瀏覽器則原樣返回

<div class="test">
    <div>Demonstration Box</div>
</div>
<div class="test">
    <div>123</div>
</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
//'  <div>Demonstration Box</div>'
console.log($('.test').html());
</script>

【2】html(htmlString)

  html(htmlString)方法設置每一個匹配元素的html內容,這些元素中的任何內容會完全被新的內容取代。此外,用新的內容替換這些元素前,jQuery從子元素刪除其他結構,如數據和事件處理程式,這樣可以防止記憶體溢出

<div class="demo-container">
  <div class="demo-box">Demonstration Box</div>
</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
//123
$('div.demo-container').html('123');
</script>

【3】html(function(index, oldhtml)) 

  html(function(index, oldhtml))用來返回設置HTML內容的一個函數。接收元素的索引位置和元素原先的HTML作為參數。jQuery的調用這個函數之前會清空元素,使用oldhtml參數引用先前的內容。在這個函數中,this指向元素集合中的當前元素

<div class="demo-container">123</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
//1230
$('div.demo-container').html(function(index,oldhtml) {
  return oldhtml + index;
});
</script>

使用範圍

  與innerHTML屬性相同,html()方法只能應用於雙標簽,單標簽無效

<input id="test" value="123">
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log(test.innerHTML)//''
console.log($('#test').html())//''
</script>

 

text()

  text()方法類似於javascript中的innerText屬性,得到匹配元素集合中每個元素的文本內容結合,包括他們的後代,或設置匹配元素集合中每個元素的文本內容為指定的文本內容,具體有3種用法:

【1】text()

  text()方法得到匹配元素集合中每個元素的合併文本,包括他們的後代

<p id="test">This is a <i>simple</i> document</p>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
//This is a simple document
console.log($('#test').text());
</script>
<div>1</div>
<div>2</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
//12
console.log($('div').text());
</script>

【2】text(textString)

  text(textString)用來設置匹配元素集合中每個元素的文本內容為指定的文本內容

<p id="test">This is a <i>simple</i> document</p>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
$('#test').text('<i>123</i>');
//'<i>123</i>'
console.log($('#test').text());
</script>

【3】text(function(index, text))

  text(function(index, text))方法通過使用一個函數來設置文本內容,該函數接收元素的索引位置和文本值作為參數,返回設置的文本內容

<p id="test">This is a <i>simple</i> document</p>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
$('#test').text(function(index, text){
    return text + index;
});
//'This is a simple document0'
console.log($('#test').text());
</script>

  該方法常用於數據初始化,使用html()方法也可以實現同樣效果

<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
$('ul li').text(function(index, text){
    return '內容' + (index+1);
});
//'內容1內容2內容3'
console.log($('li').text());
//'內容1'
console.log($('li').html());
</script>

使用範圍

  與innerText屬性相同,text()方法不能使用在input元素。在IE8-瀏覽器下,text()方法不能使用在script元素上

  input元素可以使用val()方法獲取或設置文本值;script元素可以使用html()方法

<input id="test1" value="123">
<script id="test2">
var a = 1;
</script>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log($('#test1').text());//''
//IE8-瀏覽器返回'',其他瀏覽器返回'var a = 1;'
console.log($('#test2').text());
console.log($('#test1').val());//'123'
console.log($('#test2').html());//'var a = 1;'
</script>

 

val()

  val()方法類似於javascript中的value屬性,主要是用於處理表單元素的值,用於獲取匹配的元素集合中第一個元素的當前值或設置匹配的元素集合中每個元素的值

val()

  當val()方法沒有參數時,表示獲取元素的value值

<input id="test" value="text">
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log($('#test').val());//'text'
</script>

  [註意]通過val()方法從textarea元素中取得的值是不含有回車(\r)字元的。但是如果該值是通過XHR傳遞給伺服器的,回車(\r)字元會被保留(或者是被瀏覽器添加的,但是在原始數據中並不包含回車(\r))。可以使用下麵的valHook方法解決這個問題

$.valHooks.textarea = {
  get: function(elem){
    return elem.value.replace(/\r?\n/g,"\r\n");
  }
};

  val()方法主要用於獲取表單元素的值,比如input,select和textarea。對 <select multiple="multiple">元素,val()方法返回一個包含每個選擇項的數組,如果沒有選擇性被選中,它返回null

<textarea id="test1">1</textarea>
<input id="test2" value="2">
<select id="test3">
    <option>3</option>
</select>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
console.log($('#test1').val());//1
console.log($('#test2').val());//2
console.log($('#test3').val());//3
</script>

val(value)

  val(value)用來設置表單元素的value值

<input id="test" value="2">
<button id="btn">按鈕</button>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
btn.onclick = function(){
    var value = $('#test').val();
    $('#test').val('測試'+ value)
}
</script>

val(function(index, value))

  val()方法可以接受一個函數作為參數,函數中的this指向當前元素。接收的集合中的元素,舊的值作為參數的索引位置,返回設置的值

<input id="test" value="2">
<button id="btn">按鈕</button>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script>
btn.onclick = function(){
    $('#test').val(function(index,value){
        return '測試'+index + value;
    })
}
</script>

 

總結

  html()、text()、val()三種方法都是用來讀取選定元素的內容;html()是用來讀取元素的html內容,text()用來讀取元素的純文本內容,val()是用來讀取表單元素的value值。其中html()和text()方法不能使用在表單元素上,而val()只能使用在表單元素上

  html()和val()方法使用在多個元素上時,只讀取第一個元素;而text()方法應用在多個元素上時,將會讀取所有選中元素的文本內容

  html(htmlString)、text(textString)和val(value)三種方法都是用來替換選中元素的內容,如果三個方法同時運用在多個元素上時,那麼將會替換所有選中元素的內容

  html()、text()、val()都可以使用回調函數的返回值來動態改變多個元素的內容


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 摘要: 微服務架構被提出很短的時間內,就被越來越多的開發人員推崇,簡單來說其主要的目的是有效的拆分應用,實現敏捷開發和部署 。本分享即嘗試介紹微服務架構的一些實施細節和要求,探詢微服務架構的由來,並最終提供我們團隊內部的一些實踐總結,希望對大家有幫助。 WHAT - 什麼是微服務 微服務簡介 這次參... ...
  • 摘要: 最近很多阿裡內部的同學和客戶私信來咨詢如何學習 Docker 技術。為此,我們列了一個路線圖供大家學習Docker和阿裡雲容器服務。這個列表包含了一些社區的優秀資料和我們的原創文章。我們會隨著Docker技術的發展持續更新本文,也會在雲棲社區繼續貢獻內容來幫助同學們快速入門或持續提高。 Do... ...
  • 背景 現在的web系統已經越來越多的應用緩存技術,而且緩存技術確實是能實足的增強系統性能的。我在項目中也開始接觸一些緩存的需求。 開始簡單的就用jvm(java托管記憶體)來做緩存,這樣對於單個應用伺服器來說很好。 為了系統的可用性,需要做災備,那麼就要多準備一套系統環境,這時就會有一些共用資源的問題 ...
  • 在JavaScript代碼有很多單鏈表形式的代碼,如if_else,switch等,倘若我們想將其如同Promise一樣扁平化處理呢?下麵我們就一起來看看唄~ ...
  • JS HTML DOM 改變 HTML 輸出流 JavaScript 能夠創建動態的 HTML 內容: 今天的日期是: Sat Sep 24 2016 15:06:50 GMT+0800 (中國標準時間) 在 JavaScript 中,document.write() 可用於直接向 HTML 輸出流 ...
  • 今天簡單寫一點關於瀏覽器相容的處理方法,雖然百度上已經有很多,但是我還是要寫! 先看一個圖 這個圖描述了2016年1月至8月網民們所使用的瀏覽器市場份額(來源:http://tongji.baidu.com/data/browser)。令我感到欣慰的是chrome排第一,chrome一直以來對W3C ...
  • 前段時間看了某個平臺的後臺,發現訂單顯示使用的canvas進行繪畫,直觀,明瞭的表達出了訂單的走勢如下 所以自己心癢癢的,就自己模仿了一個-->貼上代碼 效果如下 參考教材:http://blog.csdn.net/clh604/article/details/8536059 http://www. ...
  • 自己學習了一下canvas濾鏡 編寫一個簡單的小界面,嘿嘿! 註釋都在裡面啦啦啦,感興趣的來瞅瞅哦😯 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #wrap ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...